专利摘要:
Die Erfindung bezieht sich auf eine Cache-Speichereinheit für einen digitalen Signalprozessor und auf ein zugehöriges Steuerverfahren. DOLLAR A Erfindungsgemäß sind ein erster Cache-Speicher (120) zum Freigeben eines Laufflagsignals (RUN_F) in Reaktion auf ein vorgegebenes Interrupt-Signal (INT_ACK) von einem DSP-Kern (10) des digitalen Signalprozessors (30), um dem DSP-Kern (10) eine vorgegebene Anzahl von ersten Anweisungen (INS_RE1) zur Verfügung zu stellen, und zum Sperren des Laufflagsignals (RUN_F) und ein zweiter Cache-Speicher (130) vorgesehen, der dem DSP-Kern (10) wenigstens eine zweite Anweisung (INS_RE2) zur Verfügung stellt, wenn das Laufflagsignal (RUN_F) gesperrt ist. DOLLAR A Verwendung z. B. für digitale Signalprozessoren von Mobiltelefonen, Videokameras und Multimediasystemen.The invention relates to a cache memory unit for a digital signal processor and to an associated control method. DOLLAR A According to the invention are a first cache memory (120) for releasing a run flag signal (RUN_F) in response to a predetermined interrupt signal (INT_ACK) from a DSP core (10) of the digital signal processor (30) to the DSP core (10) to provide a predetermined number of first instructions (INS_RE1), and to block the run flag signal (RUN_F) and a second cache memory (130) is provided to the DSP core (10) at least one second instruction (INS_RE2 ) if the run flag signal (RUN_F) is blocked. DOLLAR A use e.g. B. for digital signal processors of mobile phones, video cameras and multimedia systems.
公开号:DE102004004248A1
申请号:DE102004004248
申请日:2004-01-21
公开日:2004-09-09
发明作者:Ho-Rang Jang
申请人:Samsung Electronics Co Ltd;
IPC主号:G06F9-38
专利说明:
[0001] Die Erfindung betrifft eine Cache-Speichereinheitfür einendigitalen Signalprozessor und ein zugehöriges Steuerverfahren.The invention relates to a cache memory unitfor onedigital signal processor and an associated control method.
[0002] Allgemein benutzen Mobiltelefone,Videokameras und Multimediasysteme digitale Signalprozessoren (DSPs)zum Verarbeiten von Sprachsignalen und Bildsignalen. Ein herkömmlicherDSP umfasst einen Programmspeicher zum Speichern von Anwendungsprogrammen,die auch Signalverarbeitungsanweisungen umfassen. Da Anwendungsprogrammeimmer umfangreicher und verschiedenartiger werden, benötigt derProgrammspeicher immer mehr Speicherkapazität. Trotzdem ist es schwierig, einenProgrammspeicher mit der größeren Speicherkapazität in einenDSP einzubauen.Generally, cell phones useVideo cameras and multimedia systems digital signal processors (DSPs)for processing voice signals and image signals. A conventional oneDSP includes a program memory for storing application programs,which also include signal processing instructions. Because application programsneeds to become more and more extensive and diverseProgram memory more and more storage capacity. Still, it's difficult to get oneProgram memory with the larger storage capacity in oneInstall DSP.
[0003] Das Problem kann jedoch dadurch angegangenwerden, dass dem herkömmlichenDSP eine Cache-Speichereinheit mit einer kleineren Speicherkapazität zur Verfügung gestelltwird, die einen Teil der Anweisungen speichern kann, die normalerweiseim Programmspeicher gespei chert werden. Durch Installieren der Cache-Speichereinheitfür Speicherbefehlenimmt die Anzahl von Zugriffen auf den Programmspeicher ab und dieBetriebsgeschwindigkeit des DSP steigt an, da die Zugriffszeit aufdie Cache-Speichereinheit kürzerals die Zugriffszeit auf den Programmspeicher ist. Dadurch kannder herkömmlicheDSP Sprachsignale oder Videosignale mit höherer Geschwindigkeit verarbeiten.However, this can address the problembe that the conventionalDSP provided a cache storage unit with a smaller storage capacitythat can store some of the instructions that normallybe saved in the program memory. By installing the cache storage devicefor memory commandsthe number of accesses to the program memory decreases and theOperating speed of the DSP increases because of the access timethe cache storage unit is shorterthan the access time to the program memory. This canthe conventionalProcess DSP voice signals or video signals at higher speeds.
[0004] 1 zeigtein Blockschaltbild eines herkömmlichendigitalen Signalprozessors und Programmspeichers. Wie aus 1 ersichtlich ist, umfasstein DSP 30 einen DSP-Kern 10 und eine Cache-Speichereinheit 20.Der DSP 30 ist mit einem Programmspeicher 40 mitausreichender Speicherkapazitätzum Speichern von Anwendungen und Anweisungen über einen Systembus 1 verbunden.Der DSP-Kern 10 führteine Vielzahl von Programmen aus, die zur Verarbeitung von digitalenSignalen benötigtwerden, und führteine Interrupt-Serviceroutine in Reaktion auf eine Interrupt-Anforderungdurch. Die Cache-Speichereinheit 20 stellt die erforderlichen Anweisungenzur Ausführungder Programme für denDSP-Kern 10 zurVerfügung.Sind keine Anweisungen, die fürden DSP-Kern 10 zur Ausführung der Interrupt-Serviceroutineerforderlich sind, in der Cache-Speichereinheit 20 vorhanden,dann liest die Cache-Speichereinheit 20 die zugehörigen Anweisungenaus dem Programmspeicher 40 aus und stellt die ausgelesenenAnweisungen dem DSP-Kern 10 zur Verfügung. 1 shows a block diagram of a conventional digital signal processor and program memory. How out 1 can be seen includes a DSP 30 a DSP core 10 and a cache memory unit 20 , The DSP 30 is with a program memory 40 with sufficient memory capacity to store applications and instructions via a system bus 1 connected. The DSP core 10 executes a variety of programs required to process digital signals and executes an interrupt service routine in response to an interrupt request. The cache storage device 20 provides the necessary instructions to run the programs for the DSP core 10 to disposal. Are not instructions for the DSP core 10 to execute the interrupt service routine are required in the cache memory unit 20 is present, then the cache memory unit reads 20 the associated instructions from the program memory 40 and issues the read instructions to the DSP core 10 to disposal.
[0005] 2 zeigtein Blockschaltbild einer herkömmlichenCache-Speichereinheit 50. Wie aus 2 ersichtlich ist, umfasst die Cache-Speichereinheit 50 einenCache-Speicher 52, eine erste Schnittstelle 51 undeine zweite Schnittstelle 53. Der Cache-Speicher 52 speicherthäufigvom DSP-Kern 10 aus 1 benutzteAnweisungen INS und stellt dem DSP-Kern 10 die Anweisungenimmer dann zur Verfügung,wenn dieser sie anfordert. Sind die vom DSP-Kern 10 angefordertenAnweisungen INS beispielsweise im Cache-Speicher 52, danngibt dieser ein Treffersignal HIT an die erste Schnittstelle 51 aus. Ansonstengibt der Cache-Speicher 52 ein Fehlsignal MISS aus. 2 shows a block diagram of a conventional cache memory unit 50 , How out 2 can be seen, includes the cache memory unit 50 a cache 52 , a first interface 51 and a second interface 53 , The cache memory 52 frequently saves from the DSP core 10 out 1 used instructions INS and provides the DSP core 10 the instructions are always available when the operator requests them. Are those from the DSP core 10 requested instructions INS, for example in the cache memory 52 , then this sends a hit signal HIT to the first interface 51 out. Otherwise the cache is there 52 a false signal MISS.
[0006] Sind die angeforderten AnweisungenINS im Cache-Speicher 52, dann gibt dieser die angefordertenAnweisungen INS zusammen mit dem Treffersignal HIT an den DSP-Kern 10 aus.Ansonsten gibt der Cache-Speicher 52 eineProgrammadresse PRO ADD, die mit den angeforderten Anweisungen INS korrespondiert,an die zweite Schnittstelle 53 aus. Zusätzlich gibt der Cache-Speicher 52 dasFehlsignal MISS an die erste Schnittstelle 51 aus. Wirdvom Cache-Speicher 52 das Fehlsignal MISS ausgegeben, danngibt die erste Schnittstelle 51 ein Wartesignal WATT anden DSP-Kern 10 aus, so dass keine weiteren Anforderungenfür AnweisungenINS vom DSP-Kern 10 ausgegeben werden.The requested INS statements are in the cache 52 , then this gives the requested instructions INS together with the hit signal HIT to the DSP core 10 out. Otherwise the cache is there 52 a program address PRO ADD, which corresponds to the requested instructions INS, to the second interface 53 out. In addition there is the cache memory 52 the false signal MISS to the first interface 51 out. Is from the cache 52 the false signal MISS issued, then the first interface 51 a wait signal WATT to the DSP core 10 off, so no further requests for INS instructions from the DSP core 10 be issued.
[0007] Die erste Schnittstelle 51 überträgt die vom DSP-Kern 10 angeforderteProgrammadresse PRO ADD an den Cache-Speicher 52. Zusätzlich überträgt die ersteSchnittstelle 51 in Reaktion auf das Treffersignal HITdie Anweisungen INS, die vom Cache-Speicher 52 ausgegebenwerden, an den DSP-Kern 10. Die zweite Schnittstelle 53 überträgt die vomCache-Speicher 52 ausgegebene Programmadresse PRO ADD anden Programmspeicher 40 aus 1.Die zweite Schnittstelle 53 überträgt die vom Programmspeicher 40 ausgegebenenAnweisungen INS, die mit der Programmadresse PRO ADD korrespondieren,an den Cache-Speicher 52.The first interface 51 transmits those from the DSP core 10 requested program address PRO ADD to the cache memory 52 , The first interface also transmits 51 in response to the hit signal HIT, the instructions INS issued by the cache memory 52 are issued to the DSP core 10 , The second interface 53 transfers the from the cache memory 52 output program address PRO ADD to the program memory 40 out 1 , The second interface 53 transfers the data from the program memory 40 issued instructions INS, which correspond to the program address PRO ADD, to the cache memory 52 ,
[0008] Daher speichert die Cache-Speichereinheit 50 häufig vomDSP-Kern 10 benutzte Anweisungen. Dadurch ist es möglich, dieAnzahl von Zugriffszeiten auf den Programmspeicher 40 zureduzieren, der eine relativ große Speicherkapazität hat, undunter Umständendie Betriebsgeschwindigkeit des DSP 30 zu erhöhen.Therefore, the cache memory unit stores 50 often from the DSP core 10 instructions used. This enables the number of access times to the program memory 40 to reduce, which has a relatively large storage capacity, and possibly the operating speed of the DSP 30 to increase.
[0009] Wird eine Interrupt-Anforderung ausgegeben,dann stoppt der DSP-Kern 10 die Ausführung eines augenblicklichenVorgangs und führtdie Interrupt-Serviceroutine aus. Anschließend setzt der DSP-Kern 10 denVorgang fort, den er aufgrund der Interrupt-Anforderung gestoppthat. Da Anweisungen, die von der Interrupt-Serviceroutine benutzt werden,weniger häufigbenutzt werden, besteht normalerweise eine geringe Wahrscheinlichkeit,dass diese Anweisungen im Cache-Speicher 52 gespeichertsind. Deshalb werden die erforderlichen Anweisungen für die Interrupt-Serviceroutinenormalerweise eher aus dem Programmspeicher 40 als ausdem Cache-Speicher 52 ausgelesen.If an interrupt request is issued, the DSP core stops 10 executing an instantaneous operation and executing the interrupt service routine. Then the DSP core sets 10 the process that it stopped due to the interrupt request. Since instructions used by the interrupt service routine are used less frequently, there is usually little chance that these instructions will be cached 52 are saved. Therefore, the instructions required for the interrupt service routine are usually removed from the program memory 40 than from the cache 52 read.
[0010] Die Interrupt-Serviceroutine sollteschnell in Echtzeit ausgeführtwerden. Da ein Cache-Speicher für üblichenGebrauch jedoch normalerweise nur Anweisungen speichert, die häufig vomDSP-Kern benutzt werden, ist die Verarbeitungsgeschwindigkeit sehrlangsam. Die Geschwindigkeit, mit der die Interrupt-Serviceroutineausgeführtwird, ist davon abhängig,wie schnell der Cache-Speicher Anweisungen für den DSP-Kern zur Verfügung stellt,die fürdie Initialisierung der Interrupt-Serviceroutine erforderlich sind.Daher ist es fürden Cache-Speicher ungünstig, eineniedrige Verarbeitungsgeschwindigkeit für die Versorgung des DSP-Kerns mit den Anweisungeneiner Interrupt-Serviceroutine aufzuweisen.The interrupt service routine should run quickly in real time. However, since a cache for normal use usually only stores instructions that are frequently used by the DSP core, the processing speed is very slowly. The speed at which the interrupt service routine runs depends on how quickly the cache memory provides instructions to the DSP core that are required to initialize the interrupt service routine. Therefore, it is inconvenient for the cache memory to have a low processing speed for supplying the DSP core with the instructions of an interrupt service routine.
[0011] In Abhängigkeit vom Betriebszustanddes DSP-Kerns kann der Zeitbedarf des DSP-Kerns zur Ausführung einesgegebenen Anwendungsprogramms variieren. Der Zeitbedarf des DSP-Kernszur Ausführungdes gegebenen Anwendungsprogramms ist typischerweise minimal kürzer alsder Zeitbedarf des DSP-Kerns zur Ausführung des gegebenen Anwendungsprogramms,währendmehrere andere Programme ausgeführtwerden. Daher ist es sehr schwierig, die Zeitdauer zu bestimmen,welche der DSP-Kern benötigt,um ein Anwendungsprogramm abzuarbeiten. Da zusätzlich der Zeitbedarf des DSP-Kernszum Abarbeiten eines gegebenen Anwendungsprogramms in Abhängigkeitvom Betriebszu stand des DSP-Kerns variieren kann, kann der Cache-Speicherfür allgemeinenGebrauch nicht schnell auf eine Interrupt-Anforderung eines Programmsreagieren, welches innerhalb einer vorgegebenen Zeitspanne abgearbeitetwerden soll.Depending on the operating statusof the DSP core, the time required for the DSP core to execute agiven application program vary. The time required by the DSP corefor executionthe given application program is typically minimally shorter thanthe time required by the DSP core to execute the given application program,whilerunning several other programsbecome. Therefore, it is very difficult to determine the length of timewhich the DSP core needsto run an application program. In addition, the time required for the DSP coredepending on the execution of a given application programThe cache memory can vary from the operating status of the DSP corefor generalDo not use quickly on an interrupt request from a programreact which is processed within a predetermined period of timeshall be.
[0012] Typischerweise speichert der Cache-Speichernur Anweisungen, die häufigvom DSP-Kern verwendet werden. Deshalb greift der Cache-Speicher bei einerInterrupt-Anforderung auf den Programmspeicher zu, um die erforderlichenAnweisungen fürdie Interrupt-Serviceroutine zu laden. Diese Zugriffsfunktion erhöht den Energieverbraucheines Chips, der den Cache-Speicher enthält.Typically, the cache storesjust instructions that are commonused by the DSP core. Therefore, the cache memory takes effect on oneInterrupt request to program memory to get the requiredInstructions forload the interrupt service routine. This access function increases energy consumptiona chip that contains the cache memory.
[0013] Um die oben genannten Unzulänglichkeiten zu überwinden,schlägtdas US-Patent 6.378.023 eine Cache-Speichereinheit vor, die einenCache-Speicher zurInterrupt-Beschreibung umfasst, in dem ein Mikroprozessor Interrupt-Informationen,d.h. erforderliche Anweisungen fürdie Interrupt-Serviceroutine,speichert. Bei dieser Cache-Speichereinheit lädt der Mikroprozessor die Interrupt-Informationen eheraus dem Cache-Speicher zur Interrupt-Beschreibung als aus einemHauptspeicher. Hierbei wird eine Interrupt-Serviceroutine seltenbenutzt und benötigtentsprechend dem Anwendungsgebiet Anweisungen von unterschiedlicherLänge,z.B. von einigen zehn Anweisungen bis zu einigen Millionen Anweisungen.Entsprechend gibt es bei einer Interrupt-Serviceroutine mit mehrerenMillionen Anweisungen eine Begrenzung für das Speichern der gesamtenInterrupt-Informationen im Cache-Speicher zur Interrupt-Beschreibung.To overcome the shortcomings mentioned above,beatsU.S. Patent 6,378,023 discloses a cache memory unit that includes aCache memory forInterrupt description includes, in which a microprocessor interrupt information,i.e. required instructions forthe interrupt service routine,stores. With this cache memory unit, the microprocessor is more likely to load the interrupt informationfrom the cache for interrupt description as from oneMain memory. An interrupt service routine is rare hereused and neededInstructions of different according to the field of applicationLength,e.g. from a few tens of instructions to a few million instructions.Accordingly, there is an interrupt service routine with severalMillions of instructions set a limit for storing the wholeInterrupt information in the cache for interrupt description.
[0014] Es ist Aufgabe der Erfindung, einenCache-Speicher sowie ein zugehörigesSteuerverfahren zur Verfügungzu stellen, der die oben angeführten Unzulänglichkeitennahezu vermeidet.It is an object of the invention, oneCache memory and an associated oneTax procedures availableto face the above shortcomingsalmost avoided.
[0015] Die Erfindung löst diese Aufgabe durch einen Cache-Speichermit den Merkmalen des Patentanspruchs 1, 10, 25 oder 26 sowie durchein zugehörigesSteuerverfahren mit den Merkmalen des Patentanspruchs 15 oder 22.The invention solves this problem by means of a cache memorywith the features of claim 1, 10, 25 or 26 and byan associatedControl method with the features of claim 15 or 22.
[0016] Vorteilhafte Weiterbildungen derErfindung sind in den abhängigenAnsprüchenangegeben.Advantageous further developments ofInvention are in the dependentclaimsspecified.
[0017] Vorteilhafte, nachfolgend beschriebeneAusführungsformender Erfindung sowie die zu deren besserem Verständnis oben erläuterten,herkömmlichenAusführungsbeispielesind in den Zeichnungen dargestellt. Es zeigen:Advantageous, described belowembodimentsthe invention and those explained above for its better understanding,usualembodimentsare shown in the drawings. Show it:
[0018] 1 einBlockschaltbild eines herkömmlichendigitalen Signalprozessors und Programmspeichers; 1 a block diagram of a conventional digital signal processor and program memory;
[0019] 2 einBlockschaltbild einer herkömmlichenCache-Speichereinheit; 2 a block diagram of a conventional cache memory unit;
[0020] 3 einBlockschaltbild eines Ausführungsbeispielseiner erfindungsgemäßen Cache-Speichereinheit; 3 a block diagram of an embodiment of a cache memory unit according to the invention;
[0021] 4 einBlockschaltbild eines ersten Cache-Speichers aus 3; 4 a block diagram of a first cache 3 ;
[0022] 5 einDiagramm zur Darstellung eines Cache-Speicherblocks aus 4; 5 a diagram showing a cache memory block 4 ;
[0023] 6 einFlussdiagramm eines erfindungsgemäßen Verfahrens zum Steuerneiner Cache-Speichereinheit; 6 a flowchart of an inventive method for controlling a cache memory unit;
[0024] 7 einFlussdiagramm zum Beschreiben eines der Funktionsschritte des Verfahrensaus 6; 7 a flowchart for describing one of the functional steps of the method 6 ;
[0025] 8 einBlockschaltbild eines weiteren Ausführungsbeispiels einer erfindungsgemäßen Cache-Speichereinheit; 8th a block diagram of another embodiment of a cache memory unit according to the invention;
[0026] 9 einBlockschaltbild eines ersten Cache-Speichers aus 8; 9 a block diagram of a first cache 8th ;
[0027] 10 einBlockschaltbild eines zweiten Cache-Speichers aus 8; 10 a block diagram of a second cache memory 8th ;
[0028] 11 einFlussdiagramm eines weiteren erfindungsgemäßen Verfahrens zum Steuerneiner Cache-Speichereinheit; 11 a flowchart of a further inventive method for controlling a cache memory unit;
[0029] 12 einBlockschaltbild eines dritten Cache-Speichers aus 8; und 12 a block diagram of a third cache 8th ; and
[0030] 13 einBlockschaltbild zur Darstellung eines Vergleichs der Eingangsbandbreiteeines Cache-Speichers füreine Interrupt-Serviceroutineund der Eingangsbandbreite eines Cache-Speichers für normale Anwendungen. 13 a block diagram showing a comparison of the input bandwidth of a cache memory for an interrupt service routine and the input bandwidth of a cache memory for normal applications.
[0031] Nachfolgend werden Ausführungsbeispiele vonCache-Speichereinheiten fürdigitale Signalprozessoren (DSPs), die in der Lage sind, schnellauf eine Interrupt-Anforderung mit wenig Energieverbrauch zu reagieren,sowie Verfahren zum Steuern solcher Cache-Speichereinheiten beschrieben.Exemplary embodiments ofCache storage units fordigital signal processors (DSPs) that are capable of fastrespond to an interrupt request with low energy consumption,and methods for controlling such cache memory units are described.
[0032] 3 zeigtein Blockschaltbild eines Ausführungsbeispielseiner erfindungsgemäßen Cache-Speichereinheit 100.Wie aus 3 ersichtlich ist,umfasst diese Cache-Speichereinheit 100 mit niedrigem Energieverbraucheine erste Schnittstelle 110, einen ersten Cache-Speicher 120,einen zweiten Cache-Speicher 130 und eine zweite Schnittstelle 140.Die erste Schnittstelle 130 empfängt eine Programmadresse PROADD und ein Interrupt-Signal INT_ACK von einem digitalen Signalprozessorkern (DSP-Kern),wie dem DSP-Kern 10 aus 1.Die erste Schnittstelle 110 kann Signale empfangen, die zumSchreiben oder Lesen von Daten benutzt werden können, um den ersten Cache-Speicher 120 und denzweiten Cache-Speicher 130 zu steuern. 3 shows a block diagram of an embodiment of a cache memory unit according to the invention 100 , How out 3 can be seen, this cache memory unit comprises 100 a first interface with low energy consumption 110 , a first cache 120 , a second cache 130 and a second interface 140 , The first interface 130 receives a pro gram address PRO ADD and an interrupt signal INT_ACK from a digital signal processor core (DSP core), such as the DSP core 10 out 1 , The first interface 110 can receive signals that can be used to write or read data to the first cache 120 and the second cache 130 to control.
[0033] Die erste Schnittstelle 110 überträgt die ProgrammadressePRO ADD zum ersten Cache-Speicher 120 und zum zweiten Cache-Speicher 130 und überträgt das Interrupt-SignalINT_ACK zum ersten Cache-Speicher 120. Der erste Cache-Speicher 120 gibteine erste Anweisung INS_RE1 gemeinsam mit einem Treffersignal HIT1an die erste Schnittstelle 110 aus. Die erste Schnittstelle 110 überträgt die ersteAnweisung INS_RE1 an den DSP-Kern 10. Der zweite Cache-Speicher 130 gibteine zweite Anweisung INS_RE2 gemeinsam mit einem Treffersignal HIT2an die erste Schnittstelle 110 aus. Hierbei werden dieim Zusammenhang mit „ersteAnweisung" und „zweiteAnweisung" benutztenBegriffe „erste" und „zweite" verwendet, um beispielsweiseAnweisungen zu unterscheiden, die vom ersten Cache-Speicher 120 oderzweiten Cache-Speicher 130 zur Verfügung gestellt werden.The first interface 110 transfers the program address PRO ADD to the first cache memory 120 and to the second cache 130 and transfers the interrupt signal INT_ACK to the first cache 120 , The first cache 120 gives a first instruction INS_RE1 together with a hit signal HIT1 to the first interface 110 out. The first interface 110 transfers the first INS_RE1 instruction to the DSP core 10 , The second cache 130 gives a second instruction INS_RE2 together with a hit signal HIT2 to the first interface 110 out. Here, the terms “first” and “second” used in connection with “first instruction” and “second instruction” are used to distinguish, for example, instructions from the first cache memory 120 or second cache memory 130 to provide.
[0034] Die erste, vom ersten Cache-Speicher 120 zurVerfügunggestellte Anweisung INS_RE1 kann beispielsweise dazu verwendet werden,den DSP-Kern 10 anzuweisen, den Interrupt-Anforderungszustandzu überprüfen undzugehörigeEingabevariablen zu lesen, wenn der DSP-Kern 10 eine Interrupt-Serviceroutineausführt.Die zweite, vom zweiten Cache-Speicher 130 zur Verfügung gestellte AnweisungINS_RE2 kann dazu verwendet werden, den DSP-Kern 10 anzuweisen,ein reguläresProgramm auszuführen,oder die zweite Anweisung INS_RE2 kann eine Anweisung sein, diedem DSP-Kern 10 zur Verfügung gestellt wird, nachdem dererste Cache-Speicher 120 alle Anweisungen INS_RE1 zum Überprüfen desInterrupt-Anforderungszustandes und zum Einlesen zugehöriger Eingabevariablenwährendder Interrupt-Serviceroutine zur Verfügung gestellt hat.The first, from the first cache 120 The INS_RE1 instruction provided can be used, for example, the DSP core 10 to instruct to check the interrupt request state and read associated input variables when the DSP core 10 executes an interrupt service routine. The second, from the second cache 130 The INS_RE2 instruction provided can be used to the DSP core 10 to instruct a regular program to run, or the second instruction INS_RE2 can be an instruction that is specific to the DSP core 10 is made available after the first cache 120 has provided all instructions INS_RE1 for checking the interrupt request state and for reading in the associated input variables during the interrupt service routine.
[0035] Die erste Schnittstelle 110 überträgt die zweiteAnweisung INS_RE2 zum DSP-Kern 10. Wenn die erste Schnittstelle 110 einFehlsignal MISS1 vom ersten Cache-Speicher 120 und einFehlsignal MISS2 vom zweiten Cache-Speicher 130 empfängt, gibtsie ein Wartesignal WATT an den DSP-Kern 10 aus, so dassder DSP-Kern 10 keine weiteren Anweisungen anfordert.The first interface 110 transfers the second INS_RE2 instruction to the DSP core 10 , If the first interface 110 an error signal MISS1 from the first cache memory 120 and a miss signal MISS2 from the second cache 130 receives a wait signal WATT to the DSP core 10 out so the DSP core 10 requests no further instructions.
[0036] Der erste Cache-Speicher 120 kannbeispielsweise als Interrupt-Cache-Speicher ausgeführt sein, der in Reaktion aufden Empfang des Interrupt-Signals INT_ACK arbeitet. Empfängt dererste Cache-Speicher 120 das Interrupt-Signal INT_ACK, danngibt er ein Lauftlagsignal RUN_F frei. Ist das Laufflagsignal RUN_Ffreigeschaltet, dann zeigt es einen Zustand an, in dem eine Anweisungin Reaktion auf eine Interrupt-Anforderungzur Verfügunggestellt werden kann. Existiert die erste Anweisung INS_RE1, diemit der Programmadresse PRO ADD korrespondiert, dann gibt der ersteCache-Speicher 120 die erste Anweisung INS_RE1 gemeinsammit dem Treffersignal HIT1 aus. Während der Ausgabe des TreffersignalsHIT1 und der ersten Anweisung INS_RE1 erzeugt der erste Cache-Speicher 120 gleichzeitigeine Vorabruf- bzw. Vorladeadresse PRF_ADD zur Ausgabe an die zweiteSchnittstelle 140. Die Vorladeadresse PRF_ADD umfasst eine Mehrzahlvon Adressen. Jeder der Adressen kann ausgehend vom Wert der ProgrammadressePRO ADD sukzessive im Wert zunehmen. In Reaktion auf die VorladeadressePRF_ADD überträgt die zweite Schnittstelle 140 eineerste Schreibanweisung INS1, die im ersten Cache-Speicher 120 gespeichertwird .The first cache 120 can be implemented, for example, as an interrupt cache memory which operates in response to the receipt of the INT_ACK interrupt signal. Receives the first cache 120 the interrupt signal INT_ACK, then it releases a runtime signal RUN_F. If the run flag signal RUN_F is enabled, it indicates a state in which an instruction can be made available in response to an interrupt request. If the first instruction INS_RE1 exists, which corresponds to the program address PRO ADD, then the first cache memory is given 120 the first instruction INS_RE1 together with the hit signal HIT1. The first cache memory is generated during the output of the hit signal HIT1 and the first instruction INS_RE1 120 at the same time a prefetch or precharge address PRF_ADD for output to the second interface 140 , The precharge address PRF_ADD comprises a plurality of addresses. Each of the addresses can gradually increase in value based on the value of the program address PRO ADD. The second interface transmits in response to the precharge address PRF_ADD 140 a first write instruction INS1, which is in the first cache 120 is saved.
[0037] Existiert die erste Anweisung INS_RE1nicht oder ist sie ungültig,dann gibt der erste Cache-Speicher 120 das Fehlsignal MISS1an die erste Schnittstelle 110 aus. Danach gibt der ersteCache-Speicher 120 die Programmadresse PRO ADD an die zweite Schnittstelle 140 ausund empfängtdie erste Schreibanweisung ISN1, die mit der Programmadresse PRO_ADDkorrespondiert, von der zweiten Schnittstelle 140.If the first INS_RE1 instruction does not exist or is invalid, the first cache memory is issued 120 the false signal MISS1 to the first interface 110 out. Then there is the first cache 120 the program address PRO ADD to the second interface 140 and receives the first write instruction ISN1, which corresponds to the program address PRO_ADD, from the second interface 140 ,
[0038] Nachdem der erste Cache-Speicher 120 einevorgegebene Anzahl von ersten Anweisungen INS_RE1 ausgegeben hat,d.h. nachdem ein Schwellwert erreicht oder eine vorgegebene Anzahl vonAnweisungen ausgegeben wurde, stellt der erste Cache-Speicher 120 denBetrieb ein und sperrt das Laufflagsignal RUN_F. Die vorgegebeneAnzahl von ersten Anweisungen INS_RE1 kann beispielsweise der Anzahlvon Anweisungen entsprechen, die der DSP-Kern 10 benötigt, umden Interrupt-Anforderungszustandzu überprüfen undrelevante Eingabevariablen einzulesen.After the first cache 120 has issued a predetermined number of first instructions INS_RE1, ie after a threshold value has been reached or a predetermined number of instructions has been issued, the first cache memory 120 operation and disables the run flag signal RUN_F. The predetermined number of first instructions INS_RE1 can, for example, correspond to the number of instructions that the DSP core 10 required to check the interrupt request status and to read relevant input variables.
[0039] Der zweite Cache-Speicher 130 kannarbeiten, wenn das Laufflagsignal RUN_F gesperrt ist. Existiertdie zweite Anweisung INS_RE2, die mit der Programmadresse PRO_ADDkorrespondiert, dann gibt der zweite Cache-Speicher 130 diezweite Anweisung INS_RE2 gemeinsam mit dem Treffersignal HIT2 andie erste Schnittstelle 110 aus. Existiert die zweite AnweisungINS_RE2 nicht oder ist sie ungültig,dann gibt der zweite Cache-Speicher 130 das FehlsignalMISS2 an die erste Schnittstelle 110 aus. Danach gibt derzweite Cache-Speicher 130 die Programmadresse PRO_ADD andie zweite Schnittstelle 140 aus, um eine zweite SchreibanweisungISN2 von der zweiten Schnittstelle 140 zu empfangen. Entsprechendkann der zweite Cache-Speicher 130 beispielsweise Anweisungen,die der DSP-Kern 10 benötigt,um ein reguläresProgramm auszuführen, oderAnweisungen zum Ausführenvon Interrupt-Serviceroutinen zur Verfügung stellen, nachdem der DSP-Kern 10 bestimmteEingabevariablen gelesen hat. Hierbei können die bestimmten Eingabevariablenbeispielsweise als Positionskoordinaten für einen Zeiger benutzt werden,der die Bewegungsrichtung einer Maus anzeigt, wenn ein bestimmtesProgramm durch ein externes Eingabegerät, wie beispielsweise eineMaus, ausgewähltwurde, um das Programm auszuführen.Die Auswahl eines Programms durch das externe Eingabegerät kann einenInterrupt auslösen.Eine Rechner-CPU kann dann die Ursache für den Interrupt ermitteln,d.h. aus den Positionskoordinaten des Zeigers ermitteln, welchesProgramm ausgewähltwurde.The second cache 130 can work when the run flag signal RUN_F is blocked. If the second instruction INS_RE2 exists, which corresponds to the program address PRO_ADD, then the second cache memory is given 130 the second instruction INS_RE2 together with the hit signal HIT2 to the first interface 110 out. If the second instruction INS_RE2 does not exist or is invalid, then the second cache memory is issued 130 the false signal MISS2 to the first interface 110 out. Then there is the second cache 130 the program address PRO_ADD to the second interface 140 out to a second write instruction ISN2 from the second interface 140 to recieve. The second cache memory can accordingly 130 for example instructions that the DSP core 10 needed to run a regular program, or provide instructions on how to run interrupt service routines after the DSP core 10 has read certain input variables. Here, the specific input variables can be used, for example, as position coordinates for a pointer that indicates the direction of movement indicates to a mouse when a particular program has been selected by an external input device, such as a mouse, to execute the program. The selection of a program by the external input device can trigger an interrupt. A computer CPU can then determine the cause of the interrupt, ie determine which program was selected from the position coordinates of the pointer.
[0040] Die zweite Schnittstelle 140 kanndie Vorladeadresse PRF_ADD oder die Programmadresse PRO_ADD vomersten Cache-Speicher 120 empfangen und die VorladeadressePRF_ADD oder die Programmadresse PRO_ADD an einen Programmspeichermit einer größeren Speicherkapazität übertragen,wie an den Programmspeicher 40 aus 1. Die zweite Schnittstelle 140 empfängt dievom zweiten Cache-Speicher 130 ausgegebene ProgrammadressePRO_ADD und überträgt die ProgrammadressePRO_ADD an den Programmspeicher 40. Als Reaktion gibt derProgrammspeicher 40 die erste Schreibanweisung INS1 andie zweite Schnittstelle 140 aus, welche die erste SchreibanweisungINS1 an den ersten Cache-Speicher 120 überträgt. Alternativ überträgt die zweiteSchnittstelle 140, wenn sie die zweite SchreibanweisungINS2 vom Programmspeicher 40 empfängt, die empfangene zweiteSchreibanweisung INS2 an den zweiten Cache-Speicher 130.The second interface 140 can be the precharge address PRF_ADD or the program address PRO_ADD from the first cache 120 received and the precharge address PRF_ADD or the program address PRO_ADD to a program memory with a larger storage capacity, such as to the program memory 40 out 1 , The second interface 140 receives the from the second cache 130 output program address PRO_ADD and transfers the program address PRO_ADD to the program memory 40 , In response, the program memory gives 40 the first write instruction INS1 to the second interface 140 from which the first write instruction INS1 to the first cache 120 transfers. Alternatively, the second interface transmits 140 if it receives the second write instruction INS2 from the program memory 40 receives the received second write instruction INS2 to the second cache memory 130 ,
[0041] 4 zeigtein detailliertes Blockschaltbild des ersten Cache-Speichers 120 aus 3. Wie aus 4 ersichtlich ist, umfasst der ersteCache-Speicher 120 einenCache-Speicherblock 150. Der Cache-Speicherblock 150 kanneine Mehrzahl von Speicherregistern 151 umfassen, wie in 5 veranschaulicht. Jedesder Speicherregister 151 kann einen N-Bit-Speicherplatz, wobei N beispielsweise eineganze Zahl größer als1 ist, und ein Gültigkeitsbit Vumfassen, das anzeigt, ob darin gespeicherte Anweisungen gültig sindoder nicht. Die N Bits können beispielsweisein eine vorgegebene Anzahl von Worten aufgeteilt sein, die auf einmalausgelesen werden können. 4 shows a detailed block diagram of the first cache 120 out 3 , How out 4 can be seen, the first cache memory comprises 120 a cache block 150 , The cache block 150 can have a plurality of memory registers 151 include as in 5 illustrated. Each of the storage registers 151 may include an N-bit storage location, where N is, for example, an integer greater than 1, and a valid bit V, which indicates whether instructions stored therein are valid or not. The N bits can, for example, be divided into a predetermined number of words that can be read out at once.
[0042] Der erste Cache-Speicher 120 kannzudem eine Cache-Steuereinheit 160 umfassen. Die Cache-Steuereinheit 160 kannein erstes Register 161 umfassen, welches die Programmadresse PRO_ADDvon der ersten Schnittstelle 110 empfängt und eine AnforderungsadresseREQ_ADD ausgibt. Die Anforderungsadresse REQ_ADD ist beispielsweisedie gleiche Adresse wie die in das erste Register 161 eingegebeneProgrammadresse PRO_ADD. Die Cache-Steuereinheit 160 kannauch ein zweites Register 162 umfassen, welches das Interrupt-Signal INT_ACKvon der ersten Schnittstelle 110 empfängt, die Programmadresse PRO_ADDspeichert, welches die erste ist, die von der ersten Schnittstelle 110 empfangenwird, und die Programmadresse PRO_ADD als Startadresse BADD setzt.Daher ist die Startadresse BADD die anfänglich in das zweite Register 162 eingegebeneProgrammadresse PRO_ADD, wenn der erste Cache-Speicher 120 dasInterrupt-Signal INT_ACK von der ersten Schnittstelle 110 empfängt. DieProgrammadresse PRO_ADD wird vom zweiten Register 162 empfangenund gespeichert, wenn ein gegebenes Steuersignal CTL in das zweite Register 162 eingegebenwird. Das zweite Register 162 setzt die Startadresse BADDmit der korrespondierenden Programmadresse PRO_ADD zurück.The first cache 120 can also have a cache control unit 160 include. The cache control unit 160 can be a first register 161 which include the program address PRO_ADD from the first interface 110 receives and issues a request address REQ_ADD. For example, the request address REQ_ADD is the same address as that in the first register 161 entered program address PRO_ADD. The cache control unit 160 can also have a second register 162 which include the interrupt signal INT_ACK from the first interface 110 receives, the program address PRO_ADD, which is the first one saved by the first interface 110 is received, and the program address PRO_ADD is set as the start address BADD. Therefore, the start address BADD is initially in the second register 162 entered program address PRO_ADD if the first cache memory 120 the INT_ACK interrupt signal from the first interface 110 receives. The program address PRO_ADD is from the second register 162 received and stored when a given control signal CTL in the second register 162 is entered. The second register 162 resets the start address BADD with the corresponding program address PRO_ADD.
[0043] Die Cache-Steuereinheit 160 umfasstein drittes Register 163, das die erste empfangene ProgrammadressePRO_ADD speichert und die Vorladeadresse PRF_ADD erzeugt. Die Vorladeadresse PRF_ADDrepräsentierteine von einer Mehrzahl von Programmadressen, die sukzessive ausgehendvon der ersten empfangenen Programmadresse PRO_ADD im Wert oderin der Anzahl ansteigen. Anders ausgedrückt, erzeugt das dritte Register 163 eineVorladeadresse PRF_ADD, die eine oder mehrere Programmadressen PRO_ADDrepräsentiert, dieim ersten Cache-Speicher 120 gespeichert sind. Das dritteRegister 163 gibt die Vorladeadresse PRF_ADD an den Programmspeicher 40 aus.Zu sätzlichund auf die Eingabe des Steuersignals CTL speichert das dritte Register 163 dieihm zugeführte ProgrammadressePRO_ADD. Das dritte Register 163 erzeugt die VorladeadressePRF_ADD und überträgt sie anden Programmspeicher 40. Die Vorladeadresse PRF_ADD kanneine Mehrzahl von Programmadressen PRO_ADD repräsentieren, die ausgehend vonder gespeicherten Programmadresse PRO_ADD sukzessive im Wert oderder Zahl ansteigen.The cache control unit 160 includes a third register 163 , which stores the first received program address PRO_ADD and generates the precharge address PRF_ADD. The precharge address PRF_ADD represents one of a plurality of program addresses which successively increase in value or in number starting from the first received program address PRO_ADD. In other words, the third register creates 163 a precharge address PRF_ADD representing one or more program addresses PRO_ADD in the first cache 120 are saved. The third register 163 gives the precharge address PRF_ADD to the program memory 40 out. In addition and on the input of the control signal CTL, the third register stores 163 the program address PRO_ADD supplied to it. The third register 163 generates the precharge address PRF_ADD and transfers it to the program memory 40 , The precharge address PRF_ADD can represent a plurality of program addresses PRO_ADD, which gradually increase in value or number based on the stored program address PRO_ADD.
[0044] Die Cache-Steuereinheit 160 kanneine erste Subtraktionseinheit 164 und eine zweite Subtraktionseinheit 165 umfassen.Die erste Subtraktionseinheit 164 erzeugt eine LeseadresseRADD durch Subtraktion der Startadresse BADD von der AnforderungsadresseREQ_ADD. Die zweite Subtraktionseinheit 165 erzeugt eineSchreibadresse WADD durch Subtraktion der Startadresse BADD vonder Vorladeadresse PRF_ADD oder von der Programmadresse PRO_ADD,die gemeinsam mit dem Steuersignal CTL empfangen wird.The cache control unit 160 can be a first subtraction unit 164 and a second subtraction unit 165 include. The first subtraction unit 164 generates a read address RADD by subtracting the start address BADD from the request address REQ_ADD. The second subtraction unit 165 generates a write address WADD by subtracting the start address BADD from the precharge address PRF_ADD or from the program address PRO_ADD, which is received together with the control signal CTL.
[0045] Die Cache-Steuereinheit 160 kanneine Treffer-/Fehlt-Bestimmungseinheit 166 umfassen. Die Treffer-/Fehlt-Bestimmungseinheit 166 empfängt die LeseadresseBADD und gibt das Fehlsignal MISS1 aus, wenn die Leseadresse RADDgrößer alsein maximaler Adressenwert in einem gegebenen Adressenbereich desCache-Speicherblocks 150 oder kleiner als ein minimalerAdressenwert im gegebenen Adressenbereich des Cache-Speicherblocks 150 ist.The cache control unit 160 can be a hit / miss determination unit 166 include. The hit / miss determination unit 166 receives the read address BADD and issues the miss signal MISS1 when the read address RADD is greater than a maximum address value in a given address area of the cache block 150 or less than a minimum address value in the given address area of the cache block 150 is.
[0046] Liegt die Leseadresse BADD innerhalbdes vorgegebenen Adressenbereichs des Cache-Speicherblocks 150,dann empfängtdie Treffer-/Fehlt-Bestimmungseinheit 166 dasGültigkeitsbit VBITvom Speicherregister 151 des Cache-Speicherblocks 150.Basierend auf dem GültigkeitsbitVBIT bestimmt die Treffer-/Fehlt-Bestimmungseinheit 166, obDaten, die mit der Leseadresse RADD korrespondieren, gültig sindoder nicht. Sind die Daten, die mit der Leseadresse RADD korrespondieren,gültig, dann gibtdie Treffer-/Fehlt-Bestimmungseinheit 166 das TreffersignalHIT1 aus. Ansonsten gibt die Treffer-/Fehlt-Bestimmungseinheit 166 dasFehlsignal MISS1 aus.If the read address BADD is within the specified address range of the cache block 150 , then the hit / miss determination unit receives 166 the valid bit VBIT from the memory register 151 of the cache block 150 , The hit / miss determination unit determines based on the validity bit VBIT 166 . whether data corresponding to the read address RADD is valid or not. If the data corresponding to the read address RADD is valid, then the hit / miss determination unit returns 166 hit signal HIT1 off. Otherwise the hit / miss determination unit returns 166 the false signal MISS1.
[0047] Das dritte Register 163 gibtdie Vorladeadresse PRF_ADD aus, während das Treffersignal HIT1ausgegeben wird, und gibt die Programmadresse PRO_ADD, die gemeinsammit dem Steuersignal CTL empfangen wird, während der Ausgabe des FehlsignalsMISS1 aus. Die Cache-Steuereinheit 160 kanneinen Zähler 167 umfassen.Wie in 4 dargestelltist, zähltder Zähler 167 dieAnzahl der ausgegebenen Treffersignale HIT1 und akkumuliert denZählwertund gibt den akkumulierten Zählwert CNTaus. Der Zähler 167 wirdin Reaktion auf ein RücksetzsignalRST zurückgesetzt.The third register 163 outputs the precharge address PRF_ADD while the hit signal HIT1 is being output and outputs the program address PRO_ADD, which is received together with the control signal CTL, during the output of the false signal MISS1. The cache control unit 160 can be a counter 167 include. As in 4 the counter counts 167 the number of hit signals output HIT1 and accumulates the count value and outputs the accumulated count value CNT. The counter 167 is reset in response to a reset signal RST.
[0048] Die Cache-Steuereinheit 160 kanneinen Steuersignalgenerator 168 umfassen. Der Steuersignalgenerator 168 kanneine Mehrzahl von Signalen empfangen, einschließlich des Fehlsignals MISS1, desInterrupt-SignalsINT_ACK, der Programmadresse PRO_ADD und des akkumulierten Zählsignals CNT.Der Steuersignalgenerator 168 kann zudem Signale wie dieLeseadresse RADD und die GültigkeitsbitinformationVBIT empfangen. Der Steuersignalgenerator 168 gibt dasSteuersignal CTL aus, wenn das Fehlsignal MISS1 empfangen wird,und vergleicht den akkumulierten Zählwert CNT mit einer vorgegebenenZahl oder einem vorgegebenen Schwellwert. Ist der akkumulierte Zählwert CNT gleichder vorgegebenen Zahl oder dem vorgegebenen Schwellwert, dann bestimmtder Steuersignalgenerator 168, dass die Anzahl der erstenAnweisungen INS_RE1, die dem DSP-Kern 10 zur Verfügung gestelltwerden, die vorgegebene Zahl oder den vorgegebenen Schwellwert erreichthat und sperrt das Laufflagsignal RUN_F. Hierbei gibt der Steuersignalgenerator 168 dasRücksetzsignalRST an den Zähler 167 aus.Außerdemkann der Steuersignalgenerator 168 hierbei außer demSteuersignal CTL zusätzlicheSteuersignale ausgeben.The cache control unit 160 can be a control signal generator 168 include. The control signal generator 168 can receive a plurality of signals, including the false signal MISS1, the interrupt signal INT_ACK, the program address PRO_ADD and the accumulated count signal CNT. The control signal generator 168 can also receive signals such as the read address RADD and the valid bit information VBIT. The control signal generator 168 outputs the control signal CTL when the false signal MISS1 is received and compares the accumulated count value CNT with a predetermined number or a predetermined threshold value. If the accumulated count value CNT is equal to the predetermined number or the predetermined threshold value, then the control signal generator determines 168 that the number of first INS_RE1 statements that the DSP core 10 are made available that have reached the specified number or the specified threshold value and blocks the run flag signal RUN_F. Here the control signal generator gives 168 the reset signal RST to the counter 167 out. In addition, the control signal generator 168 output additional control signals in addition to the control signal CTL.
[0049] 6 zeigtein Flussdiagramm eines erfindungsgemäßen Verfahrens 2000 zum Steuerneiner Cache-Speichereinheit. Zusätzlichkann bei den nachfolgenden Ausführungenauf die 3 bis 7 Bezug genommen werden.Die grundsätzlicheFunktionsweise der Cache-Speichereinheit ist dem Fachmann bekannt,deshalb wird hier auf eine ausführlicheBeschreibung verzichtet. 6 shows a flow diagram of a method 2000 according to the invention for controlling a cache memory unit. In addition, the following comments can be made on the 3 to 7 Be referenced. The basic mode of operation of the cache memory unit is known to the person skilled in the art, and therefore a detailed description is omitted here.
[0050] Wie aus 6 ersichtlich ist, stellt der zweite Cache-Speicher 130 alsFunktion 2100 anfänglich demDSP-Kern 10 die zweite Anweisung INS_RE2 zur Verfügung. Danachwird als Funktion 2200 bestimmt, ob das Interrupt-Signal INT_ACKempfangen wurde oder nicht. Wurde das Interrupt-Signal INT_ACK empfangen,d.h. das Resultat der Abfragefunktion 2200 ist „Ja", dann gibt der Steuersignalgenerator 168 desersten Cache-Speichers 120 als Funktion 2300 das LaufflagsignalRUN_F frei und der erste Cache-Speicher 120 stellt alsFunktion 2400 dem DSP-Kern 10 die erste Anweisung INS_RE1zur Verfügung.How out 6 can be seen, the second cache memory 130 as function 2100 initially the DSP core 10 the second instruction INS_RE2 is available. Then function 2200 determines whether the interrupt signal INT_ACK has been received or not. If the interrupt signal INT_ACK was received, ie the result of the query function 2200 is "yes", then the control signal generator gives 168 of the first cache 120 as function 2300 the run flag signal RUN_F free and the first cache memory 120 provides the DSP core as function 2400 10 the first instruction INS_RE1 is available.
[0051] Anschließend wird als Funktion 2500bestimmt, ob die Anzahl der ersten Anweisungen INS_RE1, die vomersten Cache-Speicher 120 zur Verfügung gestellt werden, einevorgegebene Zahl oder einen vorgegebenen Schwellwert erreicht hat odernicht. Entspricht die Anzahl der ersten Anweisungen INS_RE1 dervorgegebenen Zahl oder dem vorgegebenen Schwellwert, d.h. das Resultatder Abfragefunktion 2500 ist „Ja", dann stellt dererste Cache-Speicher 120 als Funktion 2600 den Betriebein. Die Funktionen 2100 bis 2600 können dann so lange wiederholtwerden, bis der DSP-Kern 10 keine weiteren Anweisungenmehr anfordert. Dies ist aus Gründender Übersichtlichkeitnicht dargestellt.Then function 2500 determines whether the number of first instructions INS_RE1 is from the first cache memory 120 be made available, has reached a predetermined number or a predetermined threshold value or not. If the number of the first instructions INS_RE1 corresponds to the predefined number or the predefined threshold value, ie the result of the query function 2500 is “yes”, then the first cache memory provides 120 operation as function 2600. The functions 2100 to 2600 can then be repeated until the DSP core 10 requests no further instructions. For reasons of clarity, this is not shown.
[0052] 7 zeigtein Flussdiagramm zum detaillierten Beschreiben der Funktion 2400 aus 6. Wie aus 7 ersichtlich ist, empfangen das erste bisdritte Register 161 bis 163 des ersten Cache-Speichers 120 als Funktion2401 die Programmadresse PRO_ADD. Das erste Register 161 kann eineReihe von ihr aufeinander folgend zugeführten Programmadressen PRO_ADDals Anforderungsadresse REQ_ADD ausgeben. Das zweite Register 162 speichertdie erste Programmadresse PRO_ADD aus der Reihe von Programmadressen PRO_ADDund setzt die erste gespeicherte Programmadresse PRO_ADD als StartadresseBADD. 7 shows a flowchart to describe the function in detail 2400 out 6 , How out 7 can be seen, receive the first to third register 161 to 163 of the first cache 120 the function address PRO_ADD as function 2401. The first register 161 can output a number of program addresses PRO_ADD that are successively supplied as request address REQ_ADD. The second register 162 saves the first program address PRO_ADD from the series of program addresses PRO_ADD and sets the first stored program address PRO_ADD as start address BADD.
[0053] Die erste Subtraktionseinheit 164 erzeugt dannals Funktion 2402 die Leseadresse BADD durch Subtraktion der StartadresseBADD von der Anforderungsadresse REQ_ADD. Hat die AnforderungsadresseREQ_ADD beispielsweise den Wert "108" und die StartadresseBADD den Wert "100", dann ist die LeseadresseRADD gleich "8".The first subtraction unit 164 then, as function 2402, generates the read address BADD by subtracting the start address BADD from the request address REQ_ADD. For example, if the request address REQ_ADD has the value "108" and the start address BADD has the value "100", then the read address RADD is "8".
[0054] Die Treffer-/Fehlt-Bestimmungseinheit166 bestimmt als Funktion 2403, ob die Leseadresse BADD innerhalbeines vorgegebenen Adressenbereichs des Cache-Speicherblocks 150 liegtoder nicht. Liegt die Leseadresse RADD nicht innerhalb des Adressenbereichsdes Cache-Speicherblocks 150,d.h. das Resultat der Funktion 2403 ist „Nein", dann gibt die Treffer-/Fehlt-Bestimmungseinheit 166 alsFunktion 2404 das Fehlsignal MISS1 aus. Angenommen der Cache-Speicherblock 150 hatbeispielsweise einen Adressenbereich von "0" bis "99" und die StartadresseBADD ist "100" und die AnforderungsadresseREQ_ADD ist "300", dann hat die LeseadresseRADD einen Wert von "200" und liegt außerhalb desvorgegebenen Adressenbereichs, da die Leseadresse RADD den maximalenAdressenwert von "99" des vorgegebenenAdressenbereichs wesentlich übersteigt.Daher wird das Fehlsignal MISS1 als Funktion 2404 ausgegeben unddie Startadresse BADD wird als Funktion 2405 zurückgesetzt.The hit / miss determination unit 166 determines, as function 2403, whether the read address BADD is within a predetermined address range of the cache block 150 lies or not. The read address RADD is not within the address area of the cache block 150 , ie the result of function 2403 is "no", then the hit / miss determination unit returns 166 the false signal MISS1 as function 2404. Suppose the cache block 150 For example, has an address range from "0" to "99" and the start address BADD is "100" and the request address REQ_ADD is "300", then the read address RADD has a value of "200" and is outside the specified address range because the read address RADD significantly exceeds the maximum address value of "99" in the specified address range. The false signal MISS1 is therefore output as function 2404 and the start address BADD is reset as function 2405.
[0055] Hat bei einem weiteren Beispiel dieStartadresse BADD einen Wert von "100" unddie Anforderungsadresse REQ_ADD einen Wert von "90", dann hatdie Leseadresse RADD einen Wert von "–10" und liegt ebenfallsaußerhalbdes Adressenbereichs von "0" bis "99" des Cache-Speicherblocks 150.In diesem Fall wird ebenfalls das Fehlsignal MISS1 als Funktion2404 ausgegeben und die Startadresse BADD wird als Funktion 2405zurückgesetzt.Als Reaktion auf das Fehlsignal MISS1 gibt der Steuersignalgenerator 168 dasSteuersignal CTL an das zweite und dritte Register 162 und 163 aus.Has the startad in another example If BADD has a value of "100" and the request address REQ_ADD has a value of "90", then the read address RADD has a value of "-10" and is also outside the address range from "0" to "99" of the cache memory block 150 , In this case, the false signal MISS1 is also output as function 2404 and the start address BADD is reset as function 2405. The control signal generator outputs in response to the false signal MISS1 168 the control signal CTL to the second and third registers 162 and 163 out.
[0056] Um die Startadresse BADD im Funktionsblock2405 zurückzusetzen,reagiert das zweite Register 162 auf das Steuersignal CTLmit dem Speichern der Programmadresse PRO_ADD, die benutzt wird,um die Leseadresse BADD zu erzeugen, die nicht innerhalb des Adressenbereichsdes Cache-Speicherblocks 150 liegt, und setzt die Startadressemit der gespeicherten Programmadresse PRO_ADD zurück. Entsprechendwird die Startadresse BADD immer dann zurückgesetzt, wenn die ProgrammadressePRO_ADD zu stark nach oben oder unten springt. Dieser Prozess machtes möglich, dievom DSP-Kern 10 angeforderten Anweisungen einfach durchBenutzen des Speicherregisters 151 des Cache-Speicherblocks 150 zurVerfügungzu stellen.In order to reset the start address BADD in function block 2405, the second register reacts 162 on the control signal CTL with storing the program address PRO_ADD which is used to generate the read address BADD which is not within the address area of the cache memory block 150 and resets the start address with the saved program address PRO_ADD. Accordingly, the start address BADD is always reset when the program address PRO_ADD jumps up or down too much. This process makes it possible for the DSP core 10 requested instructions simply by using the memory register 151 of the cache block 150 to provide.
[0057] Anschließend gibt das dritte Register 163 als Funktion2406 die Programmadresse PRO_ADD, die als Startadresse BADD zurückgesetztwurde, an den Programmspeicher 40 aus. Der Cache-Speicherblock 150 empfängt alsFunktion 240q7 die erste Schreibanweisung INS1, die mitder Programmadresse PRO_ADD korrespondiert, vom Programmspeicher 40.Die zweite Subtraktionseinheit 165 erzeugt dann als Funktion2408 die Schreibadresse WADD und speichert die erste Schreibanweisung INS1im Cache-Speicherblock 150. Die zweite Subtraktionseinheit 165 kanndie Schreibadresse WADD beispielsweise durch eine Subtraktion derStartadresse BADD von der Programmadresse PRO_ADD erzeugen. Wirddie Startadresse BADD zurückgesetzt,dann sind die Programmadresse PRO_ADD und die Startadresse BADDgleich, so dass die Schreibadresse WADD den Wert "0" hat.Then there is the third register 163 as function 2406 the program address PRO_ADD, which was reset as start address BADD, to the program memory 40 out. The cache block 150 receives as a function 240q7 the first write instruction INS1, which corresponds to the program address PRO_ADD, from the program memory 40 , The second subtraction unit 165 then generates the write address WADD as function 2408 and stores the first write instruction INS1 in the cache memory block 150 , The second subtraction unit 165 can generate the write address WADD, for example, by subtracting the start address BADD from the program address PRO_ADD. If the start address BADD is reset, the program address PRO_ADD and the start address BADD are the same, so that the write address WADD has the value "0".
[0058] Die Funktionen 2401 bis 2408 können solange wiederholt werden, bis die Leseadresse BADD innerhalb desvorgegebenen Adressenbereichs liegt, d.h. das Resultat der Abfragefunktion2403 ein „Ja" ist. Liegt die LeseadresseRADD innerhalb des vorgegebenen Bereichs, dann wird eine Gültigkeitsprüfung durchgeführt. DieTreffer-/Fehlt-Bestimmungseinheit 166 überprüft als Funktion 2409 ein GültigkeitsbitVBIT, das mit der Leseadresse RADD korrespondiert, die im Abfrageschritt2403 als innerhalb des Adressenbereichs liegend bestimmt wurde.Die Gültigkeitsprüfung derAbfrage 2409 bestimmt, ob die erste Anweisung INS_RE1, die mit derLeseadresse BADD korrespondiert, gültig ist oder nicht. Hat dasGültigkeitsbitVBIT beispielsweise einen Wert von „1 ", dann ist die erste Anweisung INS_RE1gültig,d.h. das Resultat des Abfrageschritts 2409 ist „Ja". Hat das Gültigkeitsbit VBIT einen Wertvon „0", dann ist die ersteAnweisung INS_RE1 ungültig,d.h. das Resultat des Abfrageschritts 2409 ist „Nein", und die Funktionsschritte 2404 bis2409 werden so lange wiederholt, bis die erste Anweisung INS_RE1als gültigerkannt wird.The functions 2401 to 2408 can be repeated until the read address BADD lies within the predefined address range, ie the result of the query function 2403 is “yes”. If the read address RADD lies within the predefined range, a validity check is carried out. The hits - / absence determination unit 166 checks as function 2409 a validity bit VBIT, which corresponds to the read address RADD, which was determined in query step 2403 as being within the address range. The validity check of query 2409 determines whether the first instruction INS_RE1, which corresponds to the read address BADD, is valid or not. For example, if the valid bit VBIT has a value of "1", then the first instruction INS_RE1 is valid, ie the result of query step 2409 is "yes". If the valid bit VBIT has a value of "0", then the first instruction INS_RE1 is invalid, ie the result of query step 2409 is "No", and function steps 2404 to 2409 are repeated until the first instruction INS_RE1 is recognized as valid ,
[0059] Ist die erste Anweisung INS_RE1 gültig, danngibt die Treffer-/Fehlt-Bestimmungseinheit 166 dasTreffersignal HIT1 aus und der Cache-Speicherblock 150 gibt alsFunktion 2410 die erste Anweisung INS_RE1 aus. Das dritte Register 163 speichertdie Programmadresse PRO_ADD, die als Startadresse BADD gesetzt ist,und erzeugt als Funktion 2411 die Vorladeadresse PRF_ADD. Die Vorladeadresse PRF_ADDkann eine Mehrzahl von Adressen umfassen, die ausgehend von derim dritten Register 163 gespeicherten Programmadresse PRO_ADDsukzessive im Wert oder in der Anzahl ansteigen.If the first instruction INS_RE1 is valid, then the hit / miss determination unit outputs 166 hit signal HIT1 off and the cache block 150 outputs the first instruction INS_RE1 as function 2410. The third register 163 saves the program address PRO_ADD, which is set as the start address BADD, and generates the precharge address PRF_ADD as function 2411. The precharge address PRF_ADD can comprise a plurality of addresses starting from that in the third register 163 stored program address PRO_ADD gradually increase in value or in number.
[0060] Wird die erste Schreibanweisung INS1empfangen, die mit der Vorladeadresse PRF_ADD korrespondiert, dannerzeugt die zweite Subtraktionseinheit 165 als Funktion2412 die Schreibadresse WADD und speichert die erste Schreibanweisung INS1im Cache-Speicherblock 150. Die zweite Subtraktionseinheit 165 kanndie Schreibadresse beispielsweise durch Subtraktion der Startadresse BADDvon der Vorladeadresse PRF_ADD erzeugen. Die Vorladeadresse PRF_ADDwird von der zweiten Schnittstelle 140 aus 3 zum Programmspeicher 40 übertragen.Nachfolgend wird die Vorladeadresse PRF_ADD detaillierter beschrieben.If the first write instruction INS1 is received, which corresponds to the precharge address PRF_ADD, then the second subtraction unit generates 165 as function 2412 the write address WADD and stores the first write instruction INS1 in the cache memory block 150 , The second subtraction unit 165 can generate the write address, for example, by subtracting the start address BADD from the precharge address PRF_ADD. The precharge address PRF_ADD is from the second interface 140 out 3 to the program memory 40 transfer. The precharge address PRF_ADD is described in more detail below.
[0061] Unter der Annahme, dass die als StartadresseBADD gesetzte Programmadresse PRO_ADD den Wert "100" hat,erzeugt das dritte Register 163 beispielsweise die VorladeadressePRF_ADD ausgehend vom Wert "100" fortlaufend um eineganze Zahl ("101 ", "102" etc.) ansteigend.Die Anforderungsadresse REQ_ADD stimmt eventuell nicht mit der VorladeadressePRF_ADD überein.Nimmt die Vorladeadresse PRF_ADD beispielsweise in der Reihenfolge "100", "101 ", "102", "103", ... zu, dann kann dieAnforderungsadresse REQ_ADD beispielsweise irregulär in derReihenfolge "100", "103", "104", "106", "200",... ansteigen. DieseFehlanpassung, d.h. REQ_ADD≠PRF_ADD,kann auftreten, weil das dritte Register 163 die aufsteigendeVorladeadresse PRF_ADD mit einer höheren Geschwindigkeit als die Geschwindigkeiterzeugt, mit der das erste Register 161 die ProgrammadressePRO_ADD empfängt,um die Anforderungsadresse REQ_ADD auszugeben.Assuming that the program address PRO_ADD set as start address BADD has the value "100", the third register generates 163 for example, the precharge address PRF_ADD continuously increasing by an integer ("101", "102" etc.) starting from the value "100". The request address REQ_ADD may not match the precharge address PRF_ADD. If the precharge address PRF_ADD increases, for example, in the order "100", "101", "102", "103", ..., then the request address REQ_ADD can, for example, irregularly in the order "100", "103", "104" , "106", "200", ... increase. This mismatch, ie REQ_ADD ≠ PRF_ADD, can occur because of the third register 163 the rising precharge address PRF_ADD generates at a higher speed than the speed at which the first register 161 receives the program address PRO_ADD to output the request address REQ_ADD.
[0062] Da der erste Cache-Speicher 120 dieerste Schreibanweisung INS1 wirksam übertragen kann, die in Reaktionauf die mit einer höherenGeschwindigkeit erzeugte und in den Programmspeicher 40 geladeneVorladeadresse PRF_ADD empfangen wird, kann er schneller auf einevom DSP-Kern 10 erzeugte Anforderung reagieren, um dieerste Anweisung INS_RE1 an den DSP-Kern 10 auszugeben. Dadurchkann der DSP-Kern 10 schnellerauf die Interrupt-Anforderung reagieren.Because the first cache 120 the first write instruction INS1 can effectively transfer that in response to that generated at a higher speed and into the program memory 40 loaded precharge address PRF_ADD is received, it can be faster on one of the DSP core 10 generated request respond to the first INS_RE1 instruction to the DSP core 10 issue. This enables the DSP core 10 respond faster to the interrupt request.
[0063] Wie aus 7 weiter ersichtlich ist, zählt mit jederAusgabe des Treffersignals HIT1 von der Treffer-/Fehlt-Bestimmungseinheit 166 derZähler 167 alsFunktion 2413 die Anzahl der ausgegebenen Treffersignale HIT1, akkumuliertden Zählwertund gibt als Funktion 2414 den akkumulierten Zählwert CNT aus. Der Steuersignalgenerator 168 vergleicht denakkumulierten ZählerwertCNT mit der vorgegebenen Zahl oder dem vorgegebenen Schwellwert undbestimmt als Funktion 2415, ob die Anzahl der ausgegebenen TreffersignaleHIT1 die vorgegebene Anzahl, d.h. den vorgegebenen Schwellwert,erreicht hat oder nicht. Erreicht die Anzahl der ausgegebenen TreffersignaleHIT1 noch nicht die vorgegebene Zahl, d.h. das Resultat des Abfrageschritts2415 ist „Nein", dann werden dieFunktionsschritte 2401 bis 2414 so lange wiederholt, bis die Anzahlder Treffersignale HIT1 der vorgegebenen Zahl entspricht.How out 7 can be seen further, counts with each output of the hit signal HIT1 from the hit / miss determination unit 166 the counter 167 as function 2413 the number of hit signals HIT1 output, accumulates the count value and outputs function 2414 the accumulated count value CNT. The control signal generator 168 compares the accumulated counter value CNT with the predetermined number or the predetermined threshold value and determines as function 2415 whether or not the number of hit signals HIT1 output has reached the predetermined number, ie the predetermined threshold value. If the number of hit signals HIT1 output does not yet reach the predetermined number, ie the result of query step 2415 is "No", then functional steps 2401 to 2414 are repeated until the number of hit signals HIT1 corresponds to the predetermined number.
[0064] Erreicht die Anzahl der ausgegebenenTreffersignale HIT1 die vorgegebene Zahl oder den vorgegebenen Schwellwert,d.h. das Resultat des Abfrageschritts 2415 ist „Ja", dann bestimmt der Steuersignalgenerator 168,dass die Anzahl der dem DSP-Kern 10 zur Verfügung gestelltenersten Anweisungen INS_RE1 die vorgegebene Zahl oder den vorgegebenenSchwellwert erreicht hat und sperrt als Funktion 2416 das LaufflagsignalRUN_F und der Prozess von 7 istabgeschlossen. Hierbei gibt der Steuersignalgenerator 168 dasRücksetzsignal RSTan den Zähler 167 aus.If the number of hit signals HIT1 output reaches the specified number or the specified threshold value, ie the result of the query step 2415 is "Yes", the control signal generator then determines 168 that the number of the DSP core 10 provided first instructions INS_RE1 has reached the specified number or the specified threshold value and blocks the run flag signal RUN_F and the process of as function 2416 7 is closed. Here the control signal generator gives 168 the reset signal RST to the counter 167 out.
[0065] Das unter Bezugnahme auf die 6 und 7 beschriebene Interrupt-Signal INT_ACK wurdeim beschriebenen Kontext nur einmal empfangen. Es können jedochzusätzlicheInterrupt-Signale empfangen werden, während das erste oder vorherigeempfangene Interrupt-Signal INT_ACK verarbeitet wird. Für den Fall,dass mehr als ein Interrupt- Signal INT_ACKempfangen wird, kann der erste Cache-Speicher 120 beispielsweisewie folgt betrieben werden.That with reference to the 6 and 7 Interrupt signal INT_ACK described was only received once in the context described. However, additional interrupt signals can be received while the first or previous received interrupt signal INT_ACK is being processed. In the event that more than one interrupt signal INT_ACK is received, the first cache memory can 120 operate as follows, for example.
[0066] Der Steuersignalgenerator 168 gibtdas Steuersignal CTL in Reaktion auf das zusätzliche oder nächste Interrupt-SignalINT_ACK aus, das von ihm empfangen wurde, während der erste Cache-Speicher 120 dieerste Anweisung INS_RE1 dem DSP-Kern 10 zur Verfügung stellt.In Reaktion auf das Steuersignal CTL speichert das zweite Register 162 dieProgrammadresse PRO_ADD, die zuerst und in erster Linie gemeinsammit dem zusätzlichempfangenen Interrupt-Signal INT_ACK empfangen wurde, siehe beispielsweisedie Funktion 2401, und setzt die Startadresse BADD mit der gespeichertenProgrammadresse PRO_ADD zurück,siehe beispielsweise die Funktion 2405. Der Zähler 167 wird in Reaktionauf das RücksetzsignalRST zurückgesetzt undbeginnt von neuem zu zählen.Da die Anzahl der vom ersten Cache-Speicher 120 in Reaktionauf die Interrupt-Anforderung zur Verfügung gestellten ersten AnweisungenINS_RE1 auf eine vorgegebene Zahl festgesetzt ist, wird die vorgegebeneZahl oder der vorgegebene Schwellwert zurückgesetzt, die vom Steuersignalgenerator 168 mitdem akkumulierten ZählwertCNT verglichen wird, um in der Lage zu sein, ausreichend auf zusätzlicheInterrupt-Signale INT_ACK reagieren zu können, so dass die erste AnweisungINS_RE1 dem DSP-Kern 10 zur Verfügung gestellt wird. Danachkehrt der Prozess zur Funktion 2406 zurück, so dass das dritte Register 163 dieProgrammadresse PRO_ADD, die als neue Startadresse BADD gesetztwurde, an den Programmspeicher 40 ausgibt und dann dieoben beschriebenen Funktionen 2407 und 2408 ausgeführt werdenkönnen.Der Verfahrenszyklus 2400 kann mehrfach ausgeführt werden, bis die Anzahlder ersten Anweisungen INS_RE1 eine vorgegebene Zahl erreicht.The control signal generator 168 outputs the control signal CTL in response to the additional or next interrupt signal INT_ACK received by it during the first cache 120 the first statement INS_RE1 the DSP core 10 provides. The second register stores in response to the control signal CTL 162 the program address PRO_ADD, which was received first and primarily together with the additionally received interrupt signal INT_ACK, see for example function 2401, and resets the start address BADD with the stored program address PRO_ADD, see for example function 2405. The counter 167 is reset in response to the reset signal RST and starts counting again. Because the number of cache from the first 120 in response to the first instructions INS_RE1 provided to the interrupt request is set to a predetermined number, the predetermined number or the predetermined threshold value is reset by the control signal generator 168 is compared with the accumulated count value CNT in order to be able to react sufficiently to additional interrupt signals INT_ACK, so that the first instruction INS_RE1 is sent to the DSP core 10 is made available. The process then returns to function 2406, leaving the third register 163 the program address PRO_ADD, which was set as the new start address BADD, to the program memory 40 outputs and then functions 2407 and 2408 described above can be performed. The process cycle 2400 can be executed several times until the number of the first instructions INS_RE1 reaches a predetermined number.
[0067] 8 zeigtein Blockschaltbild eines weiteren Ausführungsbeispiels einer erfindungsgemäßen Cache-Speichereinheit 200.Wie aus 8 er sichtlichist, kann die Cache-Speichereinheit 200 mit niedrigem Energieverbraucheine erste Schnittstelle 210, einen ersten Cache-Speicher 220,einen zweiten Cache-Speicher 230, einen dritten Cache-Speicher 240 undeine zweite Schnittstelle 250 umfassen. Die erste Schnittstelle 210 empfängt eineProgrammadresse PR_ADD und ein Interrupt-Signal INT_ACK, wie das Interrupt-SignalINT_ACK vom DSP-Kern 10 aus 1.Die erste Schnittstelle 210 kann zusätzlich Signale empfangen, diezum Schreiben oder Lesen von Daten benutzt werden können, diezum Steuern des ersten bis dritten Cache-Speichers 220 bis 240 benötigt werden. 8th shows a block diagram of a further embodiment of a cache memory unit according to the invention 200 , How out 8th he can see the cache memory unit 200 a first interface with low energy consumption 210 , a first cache 220 , a second cache 230 , a third cache 240 and a second interface 250 include. The first interface 210 receives a program address PR_ADD and an interrupt signal INT_ACK, like the interrupt signal INT_ACK from the DSP core 10 out 1 , The first interface 210 can additionally receive signals that can be used to write or read data, that can be used to control the first to third cache memories 220 to 240 are needed.
[0068] Die erste Schnittstelle 210 überträgt das empfangeneInterrupt-Signal INT_ACK und die empfangene Programmadresse PR_ADDzum ersten bis dritten Cache-Speicher 220, 230, 240.Zusätzlich überträgt die ersteSchnittstelle 210 eine erste Anweisung INS_R1, die gemeinsammit einem Treffersignal HIT_L vom ersten Cache-Speicher 220 empfangenwird, an den DSP-Kern 10. Die erste Schnittstelle 210 überträgt einezweite Anweisung INS_R2, die gemeinsam mit einem Treffersignal HIT_Ivom zweiten Cache-Speicher 230 empfangen wird, an den DSP-Kern 10.Die erste Schnittstelle 210 überträgt eine dritte Anweisung INS_R3,die gemeinsam mit einem Treffersignal HIT_G vom dritten Cache-Speicher 240 empfangenwird, an den DSP-Kern 10.The first interface 210 transfers the received interrupt signal INT_ACK and the received program address PR_ADD to the first to third cache memory 220 . 230 . 240 , The first interface also transmits 210 a first instruction INS_R1, which together with a hit signal HIT_L from the first cache memory 220 is received to the DSP core 10 , The first interface 210 transmits a second instruction INS_R2, which together with a hit signal HIT_I from the second cache memory 230 is received to the DSP core 10 , The first interface 210 transmits a third instruction INS_R3, which together with a hit signal HIT_G from the third cache memory 240 is received to the DSP core 10 ,
[0069] Wenn die erste Schnittstelle 210 Fehlsignale MISS_L,MISS_I und MISS_G vom ersten, zweiten bzw. dritten Cache-Speicher 220, 230, 240 empfängt, danngibt die erste Schnittstelle 210 ein Wartesignal WATT anden DSP-Kern 10 aus, so dass der DSP-Kern 10 keineweiteren Anweisungen anfordert.If the first interface 210 False signals MISS_L, MISS_I and MISS_G from the first, second and third cache memory 220 . 230 . 240 receives, then gives the first interface 210 a wait signal WATT to the DSP core 10 out so the DSP core 10 requests no further instructions.
[0070] 9 zeigtein detailliertes Blockschaltbild des ersten Cache-Speichers aus 8. Der erste Cache-Speicher 220 kannbeispielsweise als sperrbarer Cache-Speicher ausgeführt sein,er kann aber auch als ande rer Speichertyp ausgeführt sein. Wie aus 9 ersichtlich ist, kannder erste Cache-Speicher 220 einen Adressenspeicher 221,eine Treffer/Fehlt-Bestimmungseinheit 222, einen Seitenspeicherblock 223 undeine Seitenherunterladeeinheit 224 umfassen. Der Seitenspeicherblock 223 umfassteine Mehrzahl von Seitenspeichern, die Anweisungen speichern. DerAdressenspeicher 221 speichert Adressen der im Seitenspeicherblock 223 gespeichertenAnweisungen. 9 shows a detailed block diagram of the first cache 8th , The first cache 220 can, for example, be designed as a lockable cache memory, but it can also be designed as another type of memory. How out 9 can be seen, the first cache memory cher 220 an address memory 221 , a hit / miss determination unit 222 , a page memory block 223 and a page downloader 224 include. The page memory block 223 includes a plurality of page memories that store instructions. The address memory 221 stores addresses of the in the page memory block 223 stored instructions.
[0071] Greifen der zweite Cache-Speicher 230 und derdritte Cache-Speicher 240 nicht auf den Programmspeicher 40 aus 1 zu, dann kann die Seitenherunterladeeinheit224 im Voraus eine erste Schreibanweisung PA_INS herunterladen.Die Seitenherunterladeeinheit 224 erzeugt eine SeitenadressePA_ADD, lädtdie erste Schreibanweisung PA_INS aus dem Programmspeicher 40 herunter,die mit der Seitenadresse PA_ADD korrespondiert, und speichert dieheruntergeladene erste Schreibanweisung PA_INS im Seitenspeicherblock 223.Attack the second cache 230 and the third cache 240 not on the program memory 40 out 1 then, the page downloader 224 may download a first write instruction PA_INS in advance. The side downloader 224 generates a page address PA_ADD, loads the first write instruction PA_INS from the program memory 40 that corresponds to the page address PA_ADD and stores the downloaded first write instruction PA_INS in the page memory block 223 ,
[0072] Sind die Programmadresse PR_ADD und dieim Adressenspeicher 221 gespeicherte Adresse identisch,dann gibt die Treffer-/Fehlt-Bestimmungseinheit 222 dasTreffersignal HIT_L aus. Existiert die Programmadresse PR_ADD nichtim Adressenspeicher 221, dann gibt die Treffer-/Fehlt-Bestimmungseinheit 222 dasFehlsignal MISS_L aus.Are the program address PR_ADD and those in the address memory 221 stored address identical, then the hit / miss determination unit returns 222 hit signal HIT_L off. The program address PR_ADD does not exist in the address memory 221 , then the hit / miss determination unit returns 222 the false signal MISS_L.
[0073] Wie aus 8 ersichtlich ist, speichert der zweiteCache-Speicher 230 vorgegebene Anweisungen für den DSP-Kern 10 zumAusführender Interrupt-Serviceroutine, wenn eine Interrupt-Anforderung ausgegebenwird, d.h. wenn das Interrupt-Signal INT_ACK vom DSP-Kern 10 vonder ersten Schnittstelle 210 empfangen wird. Der zweiteCache-Speicher 230 kann beispielsweise als Interrupt-Cache-Speicherausgeführtsein und betrieben werden, wenn eine Interrupt-Anforderung vorliegt.Der zweite Cache-Speicher 230 kann den Betrieb aufnehmen, wenner das Fehlsignal MISS_L vom ersten Cache-Speicher 220 unddas Interrupt- SignalINT_ACK von der ersten Schnittstelle 210 empfängt. Derzweite Cache-Speicher 230 schaltet das Laufflagsignal RUN_Fin Reaktion auf das Interrupt-Signal INT_ACK frei.How out 8th can be seen, the second cache stores 230 predefined instructions for the DSP core 10 to execute the interrupt service routine when an interrupt request is issued, ie when the interrupt signal INT_ACK from the DSP core 10 from the first interface 210 Will be received. The second cache 230 can, for example, be designed and operated as an interrupt cache when there is an interrupt request. The second cache 230 can start operating if it receives the false signal MISS_L from the first cache memory 220 and the interrupt signal INT_ACK from the first interface 210 receives. The second cache 230 enables the run flag signal RUN_F in response to the interrupt signal INT_ACK.
[0074] Existiert die zweite Anweisung INS_R2,die mit der Programmadresse PR_ADD korrespondiert, dann gibt derzweite Cache-Speicher 230 die zweite Anweisung INS_R2 gemeinsammit dem Treffersignal HIT_I aus. Existiert die zweite AnweisungINS_R2 nicht oder ist sie ungültig,dann gibt der zweite Cache-Speicher 230 das FehlsignalMISS_I aus.If the second instruction INS_R2 exists, which corresponds to the program address PR_ADD, then the second cache memory is given 230 the second instruction INS_R2 together with the hit signal HIT_I. If the second INS_R2 instruction does not exist or is invalid, the second cache memory is issued 230 the false signal MISS_I.
[0075] Der zweite Cache-Speicher 230 kannunter Verwendung der Programmadresse PR_ADD eine VorladeadressePRF_ADD erzeugen und sie an die zweite Schnittstelle 250 ausgeben.Der zweite Cache-Speicher 230 empfängt diezweite Schreibanweisung INS1 von der zweiten Schnittstelle 250,die mit der Vorladeadresse PRF_ADD korrespondiert. Der zweite Cache-Speicher 230 stelltden Betrieb ein und sperrt das Laufflagsignal RUN_F, wenn er eine vorgegebeneAnzahl von zweiten Anweisungen INS_R2 an den DSP-Kern 10 gesendethat. Die vorgegebene Anzahl kann beispielsweise auf die Zahl vonAnweisungen gesetzt werden, die für den DSP-Kern 10 erforderlichsind, um den Interrupt-Zustand zu überprüfen und relevante Eingabevariablen einzulesen.The second cache 230 can generate a precharge address PRF_ADD using the program address PR_ADD and send it to the second interface 250 output. The second cache 230 receives the second write instruction INS1 from the second interface 250 that corresponds to the precharge address PRF_ADD. The second cache 230 stops operation and disables the run flag signal RUN_F when it sends a predetermined number of second instructions INS_R2 to the DSP core 10 sent. For example, the predetermined number can be set to the number of instructions for the DSP core 10 are required to check the interrupt status and to read in relevant input variables.
[0076] Der dritte Cache-Speicher 240 nimmtden Betrieb auf, wenn das Laufflagsignal RUN_F gesperrt ist, undgibt die dritte Anweisung INS_R3 gemeinsam mit dem TreffersignalHIT_G aus, wenn die dritte Anweisung INS_R3 existiert, die mit derProgrammadresse PR_ADD korrespondiert. Existiert die dritte AnweisungINS_R3 nicht, dann gibt der dritte Cache-Speicher 240 dasFehlsignal MISS G aus.The third cache 240 starts operation when the run flag signal RUN_F is blocked and issues the third instruction INS_R3 together with the hit signal HIT_G if the third instruction INS_R3 exists, which corresponds to the program address PR_ADD. If the third instruction INS_R3 does not exist, then the third cache memory is given 240 the false signal MISS G.
[0077] Die zweite Schnittstelle 250 empfängt eine derSeitenadressen PA_ADD vom ersten Cache-Speicher 220, dieVorladeadresse PRF_ADD vom zweiten Cache-Speicher 230 unddie Programmadresse PR_ADD vom zweiten Cache-Speicher 230 odervom dritten Cache-Speicher 240 und überträgt die empfangene Adresse zumProgrammspeicher 40, wie aus 8 ersichtlichist.The second interface 250 receives one of the page addresses PA_ADD from the first cache 220 , the precharge address PRF_ADD from the second cache 230 and the program address PR_ADD from the second cache 230 or from the third cache 240 and transfers the received address to the program memory 40 how out 8th can be seen.
[0078] Die zweite Schnittstelle 250 empfängt die ersteSchreibanweisung PA_INS vom Programmspeicher 40 und überträgt die empfangeneerste Schreibanweisung PA_INS zum ersten Cache-Speicher 220.Zusätzlichempfängtdie zweite Schnittstelle 250 die zweite SchreibanweisungINS1 vom Programmspeicher 40 und überträgt die empfangene zweite SchreibanweisungINS1 zum zweiten Cache-Speicher 230. Außerdem empfängt die zweite Schnittstelle 250 diedritte Schreibanweisung INS2 vom Programmspeicher 40 und überträgt die empfangenedritte Schreibanweisung INS2 zum dritten Cache-Speicher 240.Daher kann der dritte Cache-Speicher 240 Anweisungen zurVerfügungstellen, die es dem DSP-Kern 10 ermöglichen, ein reguläres Programmauszuführen,oder die der DSP-Kern 10 benötigt, um eine Interrupt-Serviceroutinenach dem Lesen relevanter Eingabevariablen auszuführen.The second interface 250 receives the first write instruction PA_INS from the program memory 40 and transfers the received first write instruction PA_INS to the first cache 220 , The second interface also receives 250 the second write instruction INS1 from the program memory 40 and transfers the received second write instruction INS1 to the second cache 230 , The second interface also receives 250 the third write instruction INS2 from the program memory 40 and transfers the received third write instruction INS2 to the third cache 240 , Therefore, the third cache 240 Instructions that make it available to the DSP core 10 allow to run a regular program, or that of the DSP core 10 required to execute an interrupt service routine after reading relevant input variables.
[0079] 10 zeigtein detailliertes Blockschaltbild des zweiten Cache-Speichers 230 aus 8. Wie aus 10 ersichtlich ist, kann der zweite Cache-Speicher 230 einenCache-Speicherblock 260 umfassen, der die gleiche Strukturund Funktionsweise hat wie der Cache-Speicherblock 150 aus 5. Deshalb wird an dieserStelle auf eine Wiederholung von dessen Beschreibung verzichtet. 10 shows a detailed block diagram of the second cache 230 out 8th , How out 10 can be seen, the second cache 230 a cache block 260 which have the same structure and operation as the cache block 150 out 5 , Therefore, the description of the description is not repeated here.
[0080] Der zweite Cache-Speicher 230 kanneine Cache-Steuereinheit 270 umfassen. Die Cache-Steuereinheit 270 kanneine Eingabeschaltung 271, ein erstes bis drittes Register 272 bis 274,eine erste und zweite Subtraktionseinheit 275 und 276, eineTreffer-/Fehlt-Bestimmungseinheit 277, einen Zähler 278 undeinen Steuersignalgenerator 279 umfassen. Da die Strukturund die Funktionsweise ähnlichwie die der bereits be schriebenen Cache-Steuereinheit 160 aus 4 sind, wird hier auf derendetaillierte Beschreibung verwiesen.The second cache 230 can be a cache control unit 270 include. The cache control unit 270 can be an input circuit 271 , a first to third register 272 to 274 , first and second subtraction units 275 and 276 , a hit / miss determination unit 277 , a counter 278 and a control signal generator 279 include. Since the structure and mode of operation are similar to those of the cache control unit already described 160 out 4 are referred to the detailed description here.
[0081] Ein Unterschied zwischen der Cache-Steuereinheit 270 undder Cache-Steuereinheit 150 bestehtdarin, dass die Cache-Steuereinheit 270 die Eingabeschaltung 271 umfasst.Ein weiterer Unterschied besteht darin, dass der Steuersignalgenerator 279 derCache-Steuereinheit 270 aus 10 zusätzlich dasFehlsignal MISS_L vom ersten Cache-Speicher 220 empfängt. DieEingabeschaltung 271 gibt die Programmadresse PR_ADD andas erste Register 272 aus, wenn das Fehlsignal MISS_Lempfangen wird. Der Zähler 278 arbeitetin Reaktion auf das Fehlsignal MISS_L und zählt die Anzahl der von der Treffer-/Fehlt-Bestimmungseinheit 277 ausgegebenenTreffersignale HIT_I, akkumuliert den Zählwert und gibt den akkumuliertenZählwertCNT aus. Der zweite Cache-Speicher 230 nimmtden Betrieb auf, wenn er das Fehlsignal MISS_L, das vom ersten Cache-Speicher 220 ausgegebenwird, und das Interrupt-Signal INT_ACK von der ersten Schnittstelle 210 empfängt.A difference between the cache controller 270 and the cache controller 150 is that the cache control unit 270 the input circuit 271 includes. Another difference is that the control signal generator 279 the cache control unit 270 out 10 in addition the error signal MISS_L from the first cache memory 220 receives. The input circuit 271 gives the program address PR_ADD to the first register 272 off when the false signal MISS_L is received. The counter 278 operates in response to the miss signal MISS_L and counts the number of times from the hit / miss determination unit 277 Output hit signals HIT_I, accumulates the count value and outputs the accumulated count value CNT. The second cache 230 starts operating when it receives the false signal MISS_L from the first cache 220 is output, and the interrupt signal INT_ACK from the first interface 210 receives.
[0082] 11 zeigtein Flussdiagramm eines weiteren erfindungsgemäßen Verfahrens 3000 zum Steuerneiner Cache-Speichereinheit. Das Flussdiagramm kann beispielsweiseverwendet werden, um die Vorgängezu beschreiben, die auftreten, wenn in einer Cache-Speichereinheitmit niedrigem Energieverbrauch füreinen DSP eine Interrupt-Anforderung besteht. 11 shows a flow diagram of a further method 3000 according to the invention for controlling a cache memory unit. For example, the flowchart can be used to describe the operations that occur when an interrupt request is made to a low-power cache storage device for a DSP.
[0083] Wie aus 11 ersichtlich ist, stellt der erste Cache-Speicher 220 alsFunktion 3001 dem DSP-Kern 10 die erste Anweisung INS_R1zur Verfügung.Anschließendwird als Funktion 3002 bestimmt, ob der erste Cache-Speicher 220 dasFehlsignal MISS_L ausgibt oder nicht. Wird das Fehlsignal MISS_Lausgegeben, d.h. das Resultat des Abfrageschritts 3002 ist „Ja", dann wird als Funktion3003 bestimmt, ob das Laufflagsignal RUN_F freigegeben ist odernicht. Ist das Laufflagsignal RUN_F freigegeben, d.h. das Resultatdes Abfrageschritts 3003 ist „Ja", dann zeigt dasLaufflagsignal RUN_F einen Zustand an, in dem eine Anweisung inReaktion auf eine Interrupt-Anforderung zur Verfügung gestellt werden kann.Daher stellt der zweite Cache-Speicher 230 als Funktion3004 dem DSP-Kern 10 die zweite Anweisung INS_R2 zur Verfügung. Dieswurde unter Bezugnahme auf 7 imZusammenhang mit dem analogen Funktionsschritt 2400, der vom erstenCache-Speicher 120 ausgeführt wird,im Detail beschrieben, worauf zur Beschreibung des Funktionsschritts3004 verwiesen werden kann.How out 11 can be seen, the first cache memory 220 as function 3001 the DSP core 10 the first instruction INS_R1 is available. It is then determined as function 3002 whether the first cache memory 220 outputs the false signal MISS_L or not. If the false signal MISS_L is output, ie the result of the query step 3002 is "yes", then it is determined as function 3003 whether the run flag signal RUN_F is released or not. If the run flag signal RUN_F is released, ie the result of the query step 3003 is "yes", then the run flag signal RUN_F indicates a state in which an instruction can be provided in response to an interrupt request. Therefore, the second cache memory 230 as function 3004 the DSP core 10 the second instruction INS_R2 is available. This has been made with reference to 7 associated with analog function step 2400, which is from the first cache 120 is executed, described in detail, which can be referred to for the description of the functional step 3004.
[0084] In einem Funktionsschritt 3005 wirdals nächstesbestimmt, ob die Anzahl der zweiten Anweisungen INS_R2, die vomzweiten Cache-Speicher 230 zurVerfügunggestellt werden, einen vorgegebenen Wert erreicht hat oder nicht.Entspricht die Anzahl der zweiten Anweisungen INS_R2 dem vorgegebenenWert, d.h. das Resultat des Abfrageschritts 3005 ist „Ja", dann stellt derzweite Cache-Speicher 230 den Betrieb ein und sperrt ineinem Funktionsschritt 3006 das Laufflagsignal RUN_F. Die Funktionen3001 bis 3006 könnenso lange wiederholt ausgeführtwerden, bis der DSP-Kern 10 keine weiteren Anweisungenanfordert. Entspricht die Anzahl der zweiten Anweisungen INS_R2nicht dem vorgegebenen Wert, d.h. das Resultat des Abfrageschritts3005 ist „Nein", dann können dieFunktionsschritte 3001 bis 3005 so lange wiederholt ausgeführt werden,bis die Anzahl der zweiten Anweisungen INS_R2 dem vorgegebenen Wertentspricht.In a functional step 3005, it is next determined whether the number of second instructions INS_R2 is from the second cache memory 230 be made available, has reached a predetermined value or not. If the number of second instructions INS_R2 corresponds to the predefined value, ie the result of query step 3005 is “yes”, then the second cache memory 230 operation and blocks the run flag signal RUN_F in a function step 3006. Functions 3001 through 3006 can be repeated until the DSP core 10 requests no further instructions. If the number of second instructions INS_R2 does not correspond to the specified value, ie the result of query step 3005 is "No", then function steps 3001 to 3005 can be repeated until the number of second instructions INS_R2 corresponds to the specified value.
[0085] Ist das Laufflagsignal RUN_F gesperrt,d.h. das Resultat des Abfrageschritts 3003 ist „Nein", dann stellt der dritte Cache-Speicher 240 alsFunktion 3007 dem DSP-Kern 10 die dritte Anweisung INS_R3zur Verfügung.In einem Funktionsschritt 3008 wird anschließend bestimmt, ob ein Interrupt-SignalINT_ACK empfangen wurde oder nicht. Der zweite Cache-Speicher 230 gibtals Funktion 3009 das Laufflagsignal RUN_F frei, wenn er das Interrupt-SignalINT_ACK empfängt,d.h. das Resultat des Abfrageschritts 3008 „Ja" ist, andernfalls wird der Funktionsschritt 3007 solange wiederholt, bis festgestellt wird, dass das Interrupt-SignalINT_ACK empfangen wurde. Die Funktionen 3001 bis 3009 können solange wiederholend ausgeführtwerden, bis der DSP-Kern 10 keine weitere Anweisung anfordert.If the run flag signal RUN_F is blocked, ie the result of the query step 3003 is “No”, then the third cache stores 240 as function 3007 the DSP core 10 the third instruction INS_R3 is available. In a functional step 3008 it is then determined whether an interrupt signal INT_ACK has been received or not. The second cache 230 Releases the run flag signal RUN_F as function 3009 when it receives the interrupt signal INT_ACK, ie the result of the query step 3008 is "yes", otherwise the function step becomes 3007 Repeated until it is determined that the interrupt signal INT_ACK has been received. Functions 3001 through 3009 can be repeated until the DSP core 10 no further instruction requests.
[0086] 12 zeigtein detailliertes Blockschaltbild des dritten Cache-Speichers 240 aus 8. Wie aus 12 ersichtlich ist, kann der dritte Cache-Speicher 240 eineEingabeschaltung 241, einen Markierungsspeicher 242,eine Treffer-/Fehlt-Bestimmungseinheit 243 und einen Datenspeicher 244 umfassen.Die Eingabeschaltung 241 gibt die Programmadresse PR_ADDan den Markierungsspeicher 242 aus, wenn sie das FehlsignalMISS_L und das gesperrte Laufflagsignal RUN_F empfängt. DerMarkierungsspeicher 242 speichert eine LeitungsadresseTADD, die anzeigt, dass Informationen für Anweisungen im Datenspeicher 244 gespeichertsind. Sind die Programmadresse PR_ADD und die Leitungsadresse TADDidentisch, dann gibt die Treffer-/Fehlt-Bestimmungseinheit 243 dasTreffersignal HIT_G aus. Andernfalls gibt die Treffer/Fehlt-Bestimmungseinheit 243das Fehlsignal MISS_G aus. Wird das Treffersignal HIT G ausgegeben,dann gibt der Datenspeicher 244 die dritte Anweisung INS_R3aus, die mit der Leseadresse RADD korrespondiert. Der dritte Cache-Speicher 240 kannbeispielsweise mit einer direkt abgebildeten Cache-Struktur hergestelltsein, um eine niedrige Energieaufnahme und einen erleichterten Zugriffzu ermöglichen.Der dritte Cache-Speicher 240 kann jedoch auch mit eineranderen Struktur hergestellt sein. 12 shows a detailed block diagram of the third cache 240 out 8th , How out 12 can be seen, the third cache 240 an input circuit 241 , a mark memory 242 , a hit / miss determination unit 243 and a data store 244 include. The input circuit 241 gives the program address PR_ADD to the marker memory 242 off when it receives the false signal MISS_L and the blocked run flag signal RUN_F. The mark store 242 stores a line address TADD, which indicates information for instructions in the data store 244 are saved. If the program address PR_ADD and the line address TADD are identical, then the hit / miss determination unit 243 outputs the hit signal HIT_G. Otherwise, the hit / miss determination unit 243 outputs the miss signal MISS_G. If the hit signal HIT G is output, then the data memory gives 244 the third instruction INS_R3, which corresponds to the read address RADD. The third cache 240 can be produced, for example, with a directly mapped cache structure in order to enable low energy consumption and easier access. The third cache 240 can also be made with a different structure.
[0087] 13 zeigtein Blockschaltbild zur Darstellung eines Vergleichs der Eingangsbandbreiteeines Cache-Speichers füreine Interrupt-Serviceroutine und der Eingangsbandbreite eines Cache-Speichers für normaleAnwendungen. In 13 kannein Interrupt-Cache-Speicher 305 mit dem ersten Cache-Speicher 120 aus 3 oder dem zweiten Cache- Speicher 230 aus 8 korrespondieren und einnormaler Cache-Speicher 304 kannmit dem zweiten Cache-Speicher 130 aus 3 oder dem dritten Cache-Speicher 240 aus 8 korrespondieren. 13 shows a block diagram to show a comparison of the input bandwidth of a cache memory for an interrupt service routine and the input bandwidth of a cache memory for normal applications. In 13 can be an interrupt cache 305 with the first cache 120 out 3 or the second cache memory 230 out 8th correspond and a normal cache 304 can with the second cache 130 out 3 or the third cache 240 out 8th correspond.
[0088] Wie aus 13 ersichtlich ist, sind ein erster undein zweiter Programmspeicher 301 und 302, die miteiner großenSpeicherkapazitätausgeführtsind, mit dem normalen Cache-Speicher 304 und dem Interrupt-Cache-Speicher 305 verbunden.Der normale Cache-Speicher 304 kann Daten vom ersten oder zweitenProgrammspeicher 301, 302 über einen Multiplexer 303 empfangen.Der Interrupt-Cache-Speicher 305 empfängt Daten vom ersten und zweiten Programmspeicher 301 und 302.How out 13 can be seen, a first and a second program memory 301 and 302 that are executed with a large storage capacity, with the normal cache memory 304 and the interrupt cache 305 connected. The normal cache 304 can store data from the first or second program memory 301 . 302 via a multiplexer 303 receive. The interrupt cache 305 receives data from the first and second program memories 301 and 302 ,
[0089] Der normale Cache-Speicher 304 undder Interrupt-Cache-Speicher 305 haben unterschiedliche Eingabebandbreiten.So kann die Eingabebandbreite des Interrupt-Cache-Speichers 305 beispielsweise doppeltso groß seinwie die Eingabebandbreite des normalen Cache-Speichers 304.Der Unterschied zwischen den Eingabebandbreiten kann auch in einemanderen Faktor als zwei bestehen.The normal cache 304 and the interrupt cache 305 have different input bandwidths. So can the input bandwidth of the interrupt cache 305 for example, twice the input bandwidth of the normal cache 304 , The difference between the input bandwidths can also be a factor other than two.
[0090] Zur leichteren Erklärung können dererste und der zweite Programmspeicher 301, 302 beispielsweise32-Bit-Daten ausgeben. Da der normale Cache-Speicher 304 über denMultiplexer 303 Daten entweder vom ersten Programmspeicher 301 oder vomzweiten Programmspeicher 302 empfängt, hat der normale Cache-Speicher 304 eineEingabebandbreite von 32 Bit. Andererseits empfängt der Interrupt-Cache-Speicher 305 Datensowohl vom ersten und vom zweiten Programmspeicher 301, 302 und hatdaher eine Eingabebandbreite von 64 Bit.The first and second program memories can be used for easier explanation 301 . 302 for example, output 32-bit data. Because the normal cache 304 via the multiplexer 303 Data either from the first program memory 301 or from the second program memory 302 has normal cache memory 304 an input bandwidth of 32 bits. On the other hand, the interrupt cache receives 305 Data from both the first and second program memories 301 . 302 and therefore has an input bandwidth of 64 bits.
[0091] Durch seine höhere Bandbreite kann der Interrupt-Cache-Speicher 305 folglichbeim Auftreten einer Interrupt-Anforderung dem DSP-Kern 10 schnellerdie angeforderten Anweisungen zur Verfügung stellen als der normaleCache-Speicher 304. Währendder Durchführungvon anderen Vorgängen stattder Interrupt-Serviceroutine ist der normale Cache-Speicher 304 jedochim Bezug auf den Energieverbrauch effektiver, da er entweder aufden ersten Programmspeicher 301 oder den zweiten Programmspeicher 301 undnicht auf beide Programmspeicher 301, 302 gleichzeitigzugreift. Obwohl in 13 zwei Programmspeicher 301, 302 dargestelltsind, können auchmehr als zwei Programmspeicher mit dem normalen Cache-Speicher 304 unddem Interrupt-Cache-Speicher 305 verbunden sein.Due to its higher bandwidth, the interrupt cache memory 305 consequently, when an interrupt request occurs to the DSP core 10 provide the requested instructions faster than the normal cache memory 304 , The normal cache is during the execution of operations other than the interrupt service routine 304 however, in terms of energy consumption, it is more effective since it either stores the first program 301 or the second program memory 301 and not on both program memories 301 . 302 accesses at the same time. Although in 13 two program memories 301 . 302 are shown, more than two program memories with the normal cache memory 304 and the interrupt cache 305 be connected.
[0092] Die erfindungsgemäße Cache-Speicher und das erfindungsgemäße Steuerverfahrensind somit in der Lage, schneller und mit einer geringeren Energieaufnahmeauf Interrupt-Anforderungen zu reagieren als herkömmlicheCache-Speicher und zugehörige Steuerverfahren.The cache memory according to the invention and the control method according to the inventionare thus able to do it faster and with less energy consumptionrespond to interrupt requests than conventional onesCache memory and associated control methods.
权利要求:
Claims (25)
[1]
Cache-Speichereinheit für einen digitalen Signalprozessor,gekennzeichnet durch – einenersten Cache-Speicher (120) zum Freigeben eines Laufflagsignals(RUN_F) in Reaktion auf ein vorgegebenes Interrupt-Signal (INT_ACK)von einem DSP-Kern (10) des digitalen Signalprozessors(30), um dem DSP-Kern (10) eine vorgegebene Anzahl vonersten Anweisungen (INS_RE1) zur Verfügung zu stellen, und zum Sperrendes Laufflagsignals (RUN_F) und – einen zweiten Cache-Speicher(130), der dem DSP-Kern (10) wenigstens eine zweiteAnweisung (INS_RE2) zur Verfügungstellt, wenn das Laufflagsignal (RUN_F) gesperrt ist.Cache memory unit for a digital signal processor, characterized by - a first cache memory ( 120 ) to release a run flag signal (RUN_F) in response to a predetermined interrupt signal (INT_ACK) from a DSP core ( 10 ) of the digital signal processor ( 30 ) to the DSP core ( 10 ) to provide a predetermined number of first instructions (INS_RE1), and to block the run flag signal (RUN_F) and - a second cache memory ( 130 ), the DSP core ( 10 ) provides at least a second instruction (INS_RE2) when the run flag signal (RUN_F) is blocked.
[2]
Cache-Speichereinheit nach Anspruch 1, gekennzeichnetdurch – eineerste Schnittstelle (110), die eine Schnittstellenverbindungfür denDSP-Kern (10), den ersten Cache-Speicher (120)und den zweiten Cache-Speicher (130) bereitstellt, und – eine zweiteSchnittstelle (140), die eine Schnittstellenverbindungfür denersten Cache-Speicher (120), den zweiten Cache-Speicher (130)und einen Programmspeicher (40) bereitstellt, der Anweisungenfür denDSP-Kern (10) speichert.Cache memory unit according to claim 1, characterized by - a first interface ( 110 ), which is an interface connection for the DSP core ( 10 ), the first cache ( 120 ) and the second cache memory ( 130 ) and - a second interface ( 140 ), which is an interface connection for the first cache ( 120 ), the second cache memory ( 130 ) and a program memory ( 40 ) that provides instructions for the DSP core ( 10 ) saves.
[3]
Cache-Speichereinheit nach Anspruch 1 oder 2, dadurchgekennzeichnet, dass die vorgegebene Anzahl von ersten Anweisungen(INS_RE1) den DSP-Kern (10) veranlasst, einen Interrupt-Anforderungszustandzu überprüfen undrelevante Eingabevariablen zu lesen.Cache memory unit according to claim 1 or 2, characterized in that the predetermined number of first instructions (INS_RE1) the DSP core ( 10 ) causes an interrupt request status to be checked and relevant input variables to be read.
[4]
Cache-Speichereinheit nach einem der Ansprüche 1 bis3, dadurch gekennzeichnet, dass der erste Cache-Speicher (120)folgende Elemente umfasst: – einen Cache-Speicherblock(150), der eine vorgegebene Anzahl der vorgegebenen erstenAnweisungen (INS_RE1) speichert, die in Reaktion auf eine korrespondierendeSchreibadresse (WADD) aus dem Programmspeicher (40) empfangenwerden, und der jede der vorgegebenen Anzahl von ersten Anweisungen(INS_RE1) als Reaktion auf eine korrespondierende Leseadresse (RADD)ausgibt, und – eineCache-Steuereinheit (160), die die Schreibadresse (WADD),die Leseadresse (RADD) und eine Vorabrufadresse (PRF_ADD) unterBenutzung einer Programmadresse (PRO_ADD) erzeugt, die über die ersteSchnittstelle (110) vom DSP-Kern (10) empfangenwird, wobei die Cache-Steuereinheit (160) die Vorabrufadresse(PRF_ADD) überdie zweite Schnittstelle (140) an den Programmspeicher(40) überträgt, um einevorgegebene erste Anweisung zu empfangen.Cache memory unit according to one of claims 1 to 3, characterized in that the first cache memory ( 120 ) comprises the following elements: a cache block ( 150 ), which stores a predetermined number of the predetermined first instructions (INS_RE1), which in response to a corresponding write address (WADD) from the program memory ( 40 ) are received and which issues each of the predetermined number of first instructions (INS_RE1) in response to a corresponding read address (RADD), and - a cache control unit ( 160 ), which generates the write address (WADD), the read address (RADD) and a prefetch address (PRF_ADD) using a program address (PRO_ADD) which is transmitted via the first interface ( 110 ) from the DSP core ( 10 ) is received, the cache control unit ( 160 ) the prefetch address (PRF_ADD) via the second interface ( 140 ) to the program memory ( 40 ) transmits to receive a predetermined first instruction.
[5]
Cache-Speichereinheit nach Anspruch 4, dadurch gekennzeichnet,dass die Cache-Steuereinheit (160) folgende Elemente umfasst: – ein erstesRegister (161), das die Programmadresse (PRO_ADD) von derersten Schnittstelle (110) empfängt und die Programmadresse(PRO_ADD) als Anforderungsadresse (REQ_ADD) ausgibt, – ein zweitesRegister (162), das in Reaktion auf das Interrupt-Signal (INT_ACK)eine erste empfangene Programmadresse (PRO_ADD) als Startadresse (BADD)setzt, – eindrittes Register (163), das basierend auf der Startadresse(BADD) die Vorabrufadresse (PRF_ADD) erzeugt, – eine ersteSubtraktionseinheit (164), welche die Startadresse (BADD)von der Anforderungsadresse (REQ_ADD) subtrahiert, um die Leseadresse (RADD)an den Cache-Speicherblock (150) auszugeben, – eine zweiteSubtraktionseinheit (165), welche die Startadresse (BADD)von der Vorabrufadresse (PRF_ADD) subtrahiert, um die Schreibadresse (WADD)an den Cache-Speicherblock (150) auszugeben, – eine Treffer-/Fehlt-Bestimmungseinheit(166), die ein Treffersignal (HIT1) ausgibt, wenn die Leseadresse(RADD) als gültigbestimmt wird, und die andernfalls ein Fehlsignal (MISS1) ausgibt, – einenZähler(167), der die Anzahl der ausgegebenen Treffersignale (HIT1)zählt,einen Zählwertakkumuliert und den akkumulierten Zählwert (CNT) ausgibt, und – einenSteuersignalgenerator (168), der feststellt, ob die Anzahlder ausgegebenen Treffersignale (HIT1) basierend auf dem akkumuliertenZählwert(CNT) einen vorgegebenen Schwellwert erreicht hat, und das Laufflagsignal(RUN_F) freischaltet, wenn die Anzahl der ausgegebenen Treffersignale(HIT1) den Schwellwert erreicht hat.Cache memory unit according to claim 4, characterized in that the cache control unit ( 160 ) comprises the following elements: - a first register ( 161 ) that the program address (PRO_ADD) from the first interface ( 110 ) receives and outputs the program address (PRO_ADD) as request address (REQ_ADD), - a second register ( 162 ), which sets a first received program address (PRO_ADD) as start address (BADD) in response to the interrupt signal (INT_ACK), - a third register ( 163 ), which generates the prefetch address (PRF_ADD) based on the start address (BADD), - a first subtraction unit ( 164 ), which subtracts the start address (BADD) from the request address (REQ_ADD) to transfer the read address (RADD) to the cache memory block ( 150 ) - a second subtraction unit ( 165 ), which subtracts the start address (BADD) from the prefetch address (PRF_ADD) to transfer the write address (WADD) to the cache memory block ( 150 ) - a hit / miss determination unit ( 166 ), which outputs a hit signal (HIT1) if the read address (RADD) is determined to be valid, and which otherwise outputs a false signal (MISS1), - a counter ( 167 ), which counts the number of hit signals output (HIT1), accumulates a count value and outputs the accumulated count value (CNT), and - a control signal generator ( 168 ), which determines whether the number of hit signals output (HIT1) based on the accumulated count value (CNT) has reached a predetermined threshold, and activates the run flag signal (RUN_F) when the number of hit signals output (HIT1) has reached the threshold value.
[6]
Cache-Speichereinheit nach Anspruch 5, dadurch gekennzeichnet,dass – dasdritte Register (163) die Vorabrufadresse (PRF_ADD) erzeugt,wenn das Treffersignal von der Treffer-/Fehlt-Bestimmungseinheit(166) ausgegeben wird, und – die Vorabrufadresse (PRF_ADD)eine Mehrzahl von Adressen umfasst, die in ihrem Wert ausgehend vonder Startadresse (BADD) kontinuierlich ansteigen.Cache memory unit according to claim 5, characterized in that - the third register ( 163 ) the prefetch address (PRF_ADD) is generated when the hit signal from the hit / miss determination unit ( 166 ) is output, and - the prefetch address (PRF_ADD) comprises a plurality of addresses which continuously increase in their value starting from the start address (BADD).
[7]
Cache-Speichereinheit nach Anspruch 5 oder 6, dadurchgekennzeichnet, dass der Zähler(167) zurückgesetztwird, wenn ein weiteres Interrupt-Signal (INT_ACK) empfangen wird.Cache memory unit according to claim 5 or 6, characterized in that the counter ( 167 ) is reset when another interrupt signal (INT_ACK) is received.
[8]
Cache-Speichereinheit nach einem der Ansprüche 5 bis7, dadurch gekennzeichnet, dass – die Treffer-/Fehlt-Bestimmungseinheit(166) das Fehlsignal (MISS1) ausgibt, wenn die von der ersten Subtraktionseinheit(164) ausgegebene Leseadresse (RADD) außerhalb eines vorgegebenenAdressenbereichs des Cache-Speicherblocks (150) liegt oder wenndie erste Anweisung (INS_RE1) ungültig ist, die mit der Leseadresse(RADD) korrespondiert, – derSteuersignalgenerator (168) ein vorgegebenes Steuersignal(CTL) in Reaktion auf das Fehlsignal (MISS1) ausgibt und – das zweiteRegister (162) die Startadresse (BADD) in Reaktion aufdas Steuersignal (CTL) zurücksetzt.Cache memory unit according to one of claims 5 to 7, characterized in that - the hit / miss determination unit (166) outputs the false signal (MISS1) when the from the first subtraction unit ( 164 ) read address (RADD) output outside a specified address area of the cache memory block ( 150 ) or if the first instruction (INS_RE1) is invalid, which corresponds to the read address (RADD), - the control signal generator ( 168 ) outputs a predetermined control signal (CTL) in response to the false signal (MISS1) and - the second register ( 162 ) resets the start address (BADD) in response to the control signal (CTL).
[9]
Cache-Speichereinheit nach Anspruch 8, dadurch gekennzeichnet,dass – daszweite Register (162) die Programmadresse (PRO_ADD) speichert,die benutzt wurde, um die Leseadresse (RADD) zu erzeugen, die außerhalbdes vorgegebenen Adressenbereichs liegt, und die gespeicherte Programmadresse(PRO_ADD) als neuen Startadresse (BADD) in Reaktion auf das Steuersignal(CTL) setzt, und – dasdritte Register (163) die neue Startadresse (BADD) in Reaktionauf das Steuersignal (CTL) an den Programmspeicher (40) überträgt.Cache memory unit according to claim 8, characterized in that - the second register ( 162 ) stores the program address (PRO_ADD) that was used to generate the read address (RADD) that is outside the specified address range and sets the stored program address (PRO_ADD) as a new start address (BADD) in response to the control signal (CTL) , and - the third register ( 163 ) the new start address (BADD) in response to the control signal (CTL) to the program memory ( 40 ) transmits.
[10]
Cache-Speichereinheit für einen digitalen Signalprozessor,gekennzeichnet durch – einenersten Cache-Speicher (220), der eine erste Anweisung (INS_R1)in Reaktion auf eine Programmadresse (PR_ADD) von einem DSP-Kern(10) des digitalen Signalprozessors (30) zur Verfügung stelltund ein erstes Fehlsignal (MISS_L) ausgibt, wenn keine Anweisungvorhanden ist, die mit der Programmadresse (PR_ADD) korrespondiert, – einenzweiten Cache-Speicher (230), der dem DSP-Kern (10)wenigstens eine zweite Anweisung (INS_R2) in Reaktion auf ein vorgegebenesInterrupt-Signal (INT_ACK) und auf das erste Fehlsignal (MISS_L)bereitstellt, wobei der zweite Cache-Speicher (230) zusätzlich einLaufflagsignal (RUN_F) sperrt, wenn dem DSP-Kern (10) einevorgegebene Anzahl von zweiten Anweisungen (INS_R2) zur Verfügung gestelltwurde, und – einendritten Cache-Speicher (240), der dem DSP-Kern (10)in Reaktion auf das erste Fehlsignal (MISS_L) eine dritte Anweisung(INS_R3) zur Verfügungstellt, wenn das Laufflagsignal (RUN_F) gesperrt ist.Cache memory unit for a digital signal processor, characterized by - a first cache memory ( 220 ) which receives a first instruction (INS_R1) in response to a program address (PR_ADD) from a DSP core ( 10 ) of the digital signal processor ( 30 ) and provides a first false signal (MISS_L) if there is no instruction that corresponds to the program address (PR_ADD), - a second cache memory ( 230 ), the DSP core ( 10 ) provides at least one second instruction (INS_R2) in response to a predetermined interrupt signal (INT_ACK) and to the first false signal (MISS_L), the second cache memory ( 230 ) additionally blocks a run flag signal (RUN_F) if the DSP core ( 10 ) a predetermined number of second instructions (INS_R2) has been made available, and - a third cache memory ( 240 ), the DSP core ( 10 ) provides a third instruction (INS_R3) in response to the first false signal (MISS_L) when the run flag signal (RUN_F) is blocked.
[11]
Cache-Speichereinheit nach Anspruch 10, gekennzeichnetdurch – eineerste Schnittstelle (210), die eine Schnittstellenverbindungfür denDSP-Kern (10), den ersten Cache-Speicher (220),den zweiten Cache-Speicher (230) und den dritten Cache-Speicher(240) bereitstellt, und – eine zweite Schnittstelle(250), die eine Schnittstellenverbindung für den erstenCache-Speicher (220), den zweiten Cache-Speicher (230), den drittenCache-Speicher (240) und einen Programmspeicher (40)bereitstellt, der Anweisungen fürden DSP-Kern (10) speichert.Cache memory unit according to claim 10, characterized by - a first interface ( 210 ), which is an interface connection for the DSP core ( 10 ), the first cache ( 220 ), the second cache memory ( 230 ) and the third cache memory ( 240 ) and - a second interface ( 250 ), which is an interface connection for the first cache ( 220 ), the second cache memory ( 230 ), the third cache memory ( 240 ) and a program memory ( 40 ) that provides instructions for the DSP core ( 10 ) saves.
[12]
Cache-Speichereinheit nach Anspruch 10 oder 11,dadurch gekennzeichnet, dass der zweite Cache-Speicher (230)folgende Elemente umfasst: – einen Cache-Speicherblock(260), der die zweiten Anweisungen (INS_R2) speichert,wobei jede der zweiten Anweisungen (INS_R2) in Reaktion auf eine korrespondierendeSchreibadresse (WADD) vom Programmspeicher (40) empfangenwird und vom Cache-Speicherblock (260) in Reaktion aufeine korrespondierende Leseadresse (RADD) ausgegeben wird, und – eine Cache-Steuereinheit(270), welche die Schreibadresse (WADD), die Leseadresse(RADD) und eine Vorabrufadresse (PRF_ADD) unter Benutzung einerProgrammadresse (PRO_ADD) erzeugt, die über die erste Schnittstelle(210) aus dem DSP-Kern (10) empfangen wird, wobeidie Cache-Steuereinheit(270) die Vorabrufadresse (PRF_ADD) über die zweite Schnittstelle(250) an den Programmspeicher (40) überträgt.Cache memory unit according to claim 10 or 11, characterized in that the second cache memory ( 230 ) includes the following elements: - a cache block ( 260 ), which stores the second instructions (INS_R2), each of the second instructions (INS_R2) in response to a corresponding write address (WADD) from the program memory ( 40 ) is received and from the cache memory block ( 260 ) is output in response to a corresponding read address (RADD), and - a cache control unit ( 270 ), which generates the write address (WADD), the read address (RADD) and a prefetch address (PRF_ADD) using a program address (PRO_ADD) which is transmitted via the first interface ( 210 ) from the DSP core ( 10 ) is received, the cache control unit ( 270 ) the prefetch address (PRF_ADD) via the second interface ( 250 ) to the program memory ( 40 ) transmits.
[13]
Cache-Speichereinheit nach Anspruch 12, dadurchgekennzeichnet, dass die Cache-Steuereinheit (270) folgendeElemente umfasst: – eineEingabeschaltung (271), welche die Programmadresse (PR_ADD)ausgibt, die in Reaktion auf das erste Fehlsignal (MISS_L) empfangenwird, – einerstes Register (272), das die Programmadresse (PR_ADD)als Anforderungsadresse (REQ_ADD) ausgibt, – ein zweites Register (273),das in Reaktion auf das Interrupt-Signal (INT_ACK) eine erste empfangene Programmadresse(PR_ADD) als Startadresse (BADD) setzt, – ein drittes Register (274),das unter Benutzung der Startadresse (BADD) die Vorabrufadresse (PRF_ADD)erzeugt, – eineerste Subtraktionseinheit (275), welche die Startadresse(BADD) von der Anforderungsadresse (REQ_ADD) subtrahiert, um dieLeseadresse (RADD) auszugeben, – eine zweite Subtraktionseinheit(276), welche die Startadresse (BADD) von der Vorabrufadresse (PRF_ADD)subtrahiert, um die Schreibadresse (WADD) auszugeben, – eine Treffer-/Fehlt-Bestimmungseinheit(277), die in Reaktion auf ein Feststellungsergebnis einTreffersignal (HIT_I) oder ein zweites Fehlsignal (MISS_I) ausgibt, – einenZähler(167), der die Anzahl der ausgegebenen Treffersignale (HIT_I)zählt,einen Zählwertakkumuliert und den akkumulierten Zählwert (CNT) ausgibt, und – einenSteuersignalgenerator (279), der das Laufflagsignal (RUN_F)in Reaktion auf das Interrupt-Signal (INT_ACK) freischaltet unddas Laufflagsignal (RUN_F) sperrt, wenn der akkumulierte Zählwert (CNT)einen vorgegebenen Schwellwert erreicht.Cache storage unit according to claim 12, characterized in that the cache control unit ( 270 ) comprises the following elements: - an input circuit ( 271 ), which outputs the program address (PR_ADD) which is received in response to the first false signal (MISS_L), - a first register ( 272 ), which outputs the program address (PR_ADD) as request address (REQ_ADD), - a second register ( 273 ), which sets a first received program address (PR_ADD) as start address (BADD) in response to the interrupt signal (INT_ACK), - a third register ( 274 ), which generates the prefetch address (PRF_ADD) using the start address (BADD), - a first subtraction unit ( 275 ), which subtracts the start address (BADD) from the request address (REQ_ADD) to output the read address (RADD), - a second subtraction unit ( 276 ), which subtracts the start address (BADD) from the prefetch address (PRF_ADD) to output the write address (WADD), - a hit / miss determination unit ( 277 ), which outputs a hit signal (HIT_I) or a second false signal (MISS_I) in response to a determination result, - a counter ( 167 ), which counts the number of hit signals output (HIT_I), accumulates a count value and outputs the accumulated count value (CNT), and - a control signal generator ( 279 ), which enables the run flag signal (RUN_F) in response to the interrupt signal (INT_ACK) and blocks the run flag signal (RUN_F) when the accumulated count value (CNT) reaches a predetermined threshold value.
[14]
Cache-Speichereinheit nach Anspruch 13, dadurchgekennzeichnet, dass – dieTreffer-/Fehlt-Bestimmungseinheit (277) das zweite Fehlsignal(MISS_I) ausgibt, wenn die Leseadresse (RADD) außerhalb eines vorgegebenen Adressenbereichsdes Cache-Speicherblocks (260) liegt oder wenn die zweiteAnweisung (INS_R2) ungültigist, die mit der Leseadresse (RADD) korrespondiert, – der Steuersignalgenerator(279) ein vorgegebenes Steuersignal (CTL) in Reaktion aufdas zweite Fehlsignal (MISS_I) ausgibt, – das zweite Register (273)die Startadresse (BADD) in Reaktion auf das Steuersignal (CTL) zurücksetzt, und – das dritteRegister (274) die Vorabrufadresse (PRF_ADD) unter Benutzungder Startadresse (BADD) erzeugt, die in Reaktion auf das Steuersignal (CTL)zurückgesetztwurde.Cache storage unit according to claim 13, characterized in that - the hit / miss determination unit ( 277 ) outputs the second false signal (MISS_I) if the read address (RADD) is outside a specified address range of the cache memory block ( 260 ) or if the second instruction (INS_R2) is invalid, which corresponds to the read address (RADD), - the control signal generator ( 279 ) outputs a predetermined control signal (CTL) in response to the second false signal (MISS_I), - the second register ( 273 ) resets the start address (BADD) in response to the control signal (CTL), and - the third register ( 274 ) generates the prefetch address (PRF_ADD) using the start address (BADD) which has been reset in response to the control signal (CTL).
[15]
Steuerverfahren für eine Cache-Speichereinheitin einem digitalen Signalprozessor, gekennzeichnet durch die Schritte: a)Bereitstellen einer Anweisung (INS_RE1) an einen DSP-Kern (10)des digitalen Signalprozesoos (30) aus einem Cache- Speicher (120)in Reaktion auf eine Anforderung des DSP-Kerns, b) Freigeben eines Laufflagsignals(RUN_F) in einem anderen Cache-Speicher (130) in Reaktionauf ein Interrupt-Signal (INT_ACK), das von ihm aus dem DSP-Kern(10) empfangen wird, c) Bereitstellen einer gegebenenAnzahl von Anweisungen (INS_RE2) aus dem anderen Cache-Speicher(130) an den DSP-Kern (10), die sich von der erstenbereitgestellten Anweisung (INS_RE1) unterscheiden, in Reaktionauf eine Anforderung des DSP-Kerns und d) Sperren des Laufflagsignals(RUN_F) und Beenden der Bereitstellung von Anweisungen (INS_RE2), wenndie gegebene Anzahl von Anweisungen (INS_RE2) einen Schwellwerterreicht.Control method for a cache memory unit in a digital signal processor, characterized by the steps: a) providing an instruction (INS_RE1) to a DSP core ( 10 ) of the digital signal process ( 30 ) from a cache memory ( 120 ) in response to a request from the DSP core, b) releasing a run flag signal (RUN_F) in another cache memory ( 130 ) in response to an interrupt signal (INT_ACK) that it sends out of the DSP core ( 10 ) is received, c) providing a given number of instructions (INS_RE2) from the other cache memory ( 130 ) to the DSP core ( 10 ) that differ from the first instruction provided (INS_RE1) in response to a request from the DSP core and d) disabling the run flag signal (RUN_F) and stopping the provision of instructions (INS_RE2) if the given number of instructions (INS_RE2 ) reached a threshold.
[16]
Steuerverfahren nach Anspruch 15, weiter gekennzeichnetdurch den Schritt: e) Wiederholen der Schritte a bis d, biskeine weiteren Anweisungen vom DSP-Kern (10) angefordert werden.Control method according to claim 15, further characterized by the step: e) repeating steps a to d until no further instructions from the DSP core ( 10 ) can be requested.
[17]
Steuerverfahren nach Anspruch 15 oder 16, dadurchgekennzeichnet, dass der Schritt c die folgenden Teilschritte umfasst: c1)Erzeugen einer Leseadresse (RADD) in Reaktion auf eine empfangeneProgrammadresse (PR_ADD), c2) Ausgeben eines Fehlsignals (MISS1)und Zurücksetzeneiner Startadresse (BADD), wenn die Leseadresse (RADD) außerhalbeines vorgegebenen Adressenbereichs liegt oder wenn eine der gegebenenAnzahl von Anweisungen ungültigist, die mit der Leseadresse (RADD) korrespondieren, c3) Übertragender zurückgesetztenStartadresse (BADD), um eine Schreibanweisung zu empfangen, c4)Erzeugen einer Schreibadresse (WADD) basierend auf der zurückgesetztenStartadresse (BADD) und Speichern der Schreibanweisung, c5)Ausgeben eines Treffersignals (HIT1) und der Schreibanweisung, wenndie Leseadresse (RADD) innerhalb des vorgegebenen Adressenbereichsliegt oder wenn die vorgegebene Anweisung gültig ist, die mit der Leseadresse(RADD) korrespondiert, c6) Zählen der Anzahl von ausgegebenenTreffersignalen (HIT1), c7) Ausgeben eines akkumulierten Zählwertes(CNT) und c8) Wiederholen der Schritte c1 bis c6, um die vorgegebeneAnzahl von Anweisungen zur Verfügungzu stellen, bis der Zählwert(CNT) des Zählvorgangsaus Schritt c6 einen vorgegebenen Wert erreicht.Control method according to claim 15 or 16, characterized in that step c comprises the following substeps: c1) generating a read address (RADD) in response to a received program address (PR_ADD), c2) outputting a false signal (MISS1) and resetting a start address ( BADD) if the read address (RADD) is outside a predetermined address range or if one of the given number of instructions that correspond to the read address (RADD) is invalid, c3) transmit the reset start address (BADD) in order to receive a write instruction, c4) generating a write address (WADD) based on the reset start address (BADD) and storing the write instruction, c5) outputting a hit signal (HIT1) and the write instruction if the read address (RADD) is within the specified address range or if the given instruction is valid which corresponds to the read address (RADD), c6) counting the number of output hit signals (HIT1 ), c7) outputting an accumulated count value (CNT) and c8) repeating steps c1 to c6 in order to provide the predetermined number of instructions until the count value (CNT) of the counting process from step c6 reaches a predetermined value.
[18]
Steuerverfahren nach einem der Ansprüche 15 bis17, weiter gekennzeichnet durch den Schritt: f) Bestimmen,ob die vorgegebene Anzahl von Anweisungen in Schritt c den vorgegebenenWert erreicht, basierend auf dem akkumulierten Zählwert (CNT).Control method according to one of claims 15 to17, further characterized by the step:f) determiningwhether the predetermined number of instructions in step c is the predeterminedValue reached based on the accumulated count (CNT).
[19]
Steuerverfahren nach Anspruch 17 oder 18, dadurchgekennzeichnet, dass der Schritt c1 die folgenden Teilschritte umfasst: c11)Setzen einer ersten von einer Mehrzahl von empfangenen Programmadressen(PRO_ADD) als Startadresse (BADD) und c12) Erzeugen der Leseadresse(RADD) durch Subtrahieren der Startadresse (BADD) von einer Anforderungsadresse(REQ_ADD), die eine Mehrzahl von nacheinander empfangenen Programmadressen (PRO_ADD)repräsentiert.Control method according to claim 17 or 18, characterizedcharacterized in that step c1 comprises the following substeps:c11)Set a first of a plurality of received program addresses(PRO_ADD) as start address (BADD) andc12) Generation of the read address(RADD) by subtracting the start address (BADD) from a request address(REQ_ADD) which contain a plurality of program addresses received in succession (PRO_ADD)represents.
[20]
Steuerverfahren nach einem der Ansprüche 17 bis19, dadurch gekennzeichnet, dass – die in Schritt c2 zurückgesetzteStartadresse (BADD) die Programmadresse (PRO_ADD) ist, die mit derLeseadresse (RADD) korrespondiert, für die das Fehlsignal (MISS1)ausgegeben wird, und – derSchritt c4 zusätzlichein Erzeugen der Schreibadresse durch Subtrahieren der zurückgesetzten Startadresse(BADD) von der empfangenen Programmadresse (PRO_ADD) umfasst.Control method according to one of claims 17 to19, characterized in that- the reset in step c2Start address (BADD) is the program address (PRO_ADD) that corresponds to theRead address (RADD) corresponds for which the false signal (MISS1)is issued, and- theStep c4 additionallygenerating the write address by subtracting the reset start address(BADD) from the received program address (PRO_ADD).
[21]
Steuerverfahren nach einem der Ansprüche 17 bis20, dadurch gekennzeichnet, dass der Schritt c5 die folgenden Teilschritteumfasst: c51) Erzeugen einer Vorabrufadresse (PRF_ADD) durchBenutzen der Startadresse (BADD), c52) Erzeugen der Schreibadresse(WADD) durch Subtrahieren der Startadresse (BADD) von der Vorabrufadresse(PRF_ADD) und c53) Speichern der Schreibanweisung, die mitder Vorladeadresse (PRF_ADD) korrespondiert.Control method according to one of claims 17 to20, characterized in that the step c5 the following substepsincludes:c51) Generation of a prefetch address (PRF_ADD) byUse the start address (BADD),c52) Generation of the write address(WADD) by subtracting the start address (BADD) from the prefetch address(PRF_ADD) andc53) Save the write instruction withcorresponds to the precharge address (PRF_ADD).
[22]
Steuerverfahren für eine Cache-Speichereinheitin einem digitalen Signalprozessor, gekennzeichnet durch die Schritte: a)Bereitstellen einer ersten Anweisung (INS_R1) an einen DSP-Kern (10)aus einem ersten Cache-Speicher (220) in Reaktion auf einevom DSP-Kern (10) empfangene Programmadresse (PR_ADD), b)Bereitstellen von wenigstens einer zweiten Anweisung (INS_RE2) anden DSP-Kern (10) aus einem zweiten Cache-Speicher (230)in Reaktion auf die Programmadresse (PR_ADD) basierend auf einem vomersten Cache-Speicher (220) ausgegebenen ersten Fehlsignal(MISS_I) und/oder einer Freigabe ei nes Laufflagsignals (RUN_F) durchden zweiten Cache-Speicher (230), c) Sperren des Laufflagsignals(RUN_F) und Beenden des Schrittes b, wenn die Anzahl von zweitenAnweisungen (INS_R2) fürden DSP-Kern (10) einen vorgegebenen Schwellwert erreicht, d)Bereitstellen einer dritten Anweisung (INS_R3) aus einem drittenCache-Speicher (240) an den DSP-Kern (10) in Reaktionauf die Programmadresse (PR_ADD) basierend auf dem ersten, vom erstenCache-Speicher (220) ausgegebenen Fehlsignal (MISS_I) und/odereinem Sperren des Lauftlagsignals (RUN_F) durch den zweiten Cache-Speicher (230), e)Freigeben des Laufflagsignals (RUN_F) im zweiten Cache-Speicher (230),wenn von ihm ein Interrupt-Signal (INT_ACK) aus dem DSP-Kern (10)empfangen wird.Control method for a cache memory unit in a digital signal processor, characterized by the steps: a) providing a first instruction (INS_R1) to a DSP core ( 10 ) from a first cache memory ( 220 ) in response to one from the DSP core ( 10 ) received program address (PR_ADD), b) providing at least one second instruction (INS_RE2) to the DSP core ( 10 ) from a second cache memory ( 230 ) in response to the program address (PR_ADD) based on one of the first cache memory ( 220 ) output first error signal (MISS_I) and / or release of a run flag signal (RUN_F) by the second cache memory ( 230 ), c) blocking the run flag signal (RUN_F) and ending step b if the number of second instructions (INS_R2) for the DSP core ( 10 ) reaches a predetermined threshold value, d) providing a third instruction (INS_R3) from a third cache memory ( 240 ) to the DSP core ( 10 ) in response to the program address (PR_ADD) based on the first cache memory ( 220 ) output false signal (MISS_I) and / or blocking of the runtime signal (RUN_F) by the second cache memory ( 230 ), e) enable the run flag signal (RUN_F) in the second cache memory ( 230 ) if an interrupt signal (INT_ACK) from the DSP core ( 10 ) Will be received.
[23]
Steuerverfahren nach Anspruch 22, weiter gekennzeichnetdurch den Schritt: f) Wiederholen der Schritte a bis e, biskeine weiteren Anweisungen vom DSP-Kern (10) angefordertwerden.The control method according to claim 22, further characterized by the step: f) repeating steps a to e until no further instructions from the DSP core ( 10 ) can be requested.
[24]
Steuerverfahren nach Anspruch 22 oder 23, dadurchgekennzeichnet, dass der Schritt b die folgenden Teilschritte umfasst: b1)Erzeugen einer Leseadresse (RADD) aus einer Programmadresse (PR_ADD), b2)Ausgeben eines zweiten Fehlsignals (MISS_I) und Zurücksetzeneiner Startadresse (BADD), wenn die Leseadresse (RADD) außerhalbeines vorgegebenen Adressenbereichs liegt oder wenn die zweite Anweisungungültigist, die mit der Leseadresse (RADD) korrespondiert, b3) Übertragender zurückgesetztenStartadresse (BADD), um eine zu speichernde zweite Schreibanweisungzu empfangen, b4) Erzeugen einer Schreibadresse (WADD) basierendauf der zurückgesetztenStartadresse (BADD) und Speichern der zweiten Schreibanweisung, b5)Ausgeben eines Treffersignals (HIT_I) und der zweiten Anweisung,wenn die Leseadresse (BADD) innerhalb des vorgegebenen Adressenbereichsliegt oder wenn die zweite Anweisung gültig ist, die mit der Leseadresse(RADD) korrespondiert, b6) Zählen der Anzahl von ausgegebenenTreffersignalen (HIT_I) und b7) Wiederholen der Schritte b1bis b6, bis der Zählwert(CNT) des Zählvorgangsaus Schritt b6 einen vorgegebenen Wert erreicht.Control method according to claim 22 or 23, characterizedcharacterized in that step b comprises the following substeps:b1)Generation of a read address (RADD) from a program address (PR_ADD),b2)Output a second false signal (MISS_I) and reseta start address (BADD) if the read address (RADD) is outsideof a given address range or if the second instructioninvalidwhich corresponds to the reading address (RADD),b3) Transferthe resetStart address (BADD) for a second write instruction to be savedto recieve,b4) Generate a write address (WADD) basedon the resetStart address (BADD) and save the second write instruction,b5)Issuing a hit signal (HIT_I) and the second instruction,if the read address (BADD) is within the specified address rangeor if the second statement is valid, that with the read address(RADD) corresponds,b6) Counting the number of issuesHit signals (HIT_I) andb7) repeating steps b1to b6 until the count value(CNT) of the counting processreached a predetermined value from step b6.
[25]
Cache-Speichereinheit für einen digitalen Signalprozessor,die mit dem Steuerverfahren nach einem der Ansprüche 15 bis 24 gesteuert wird.Cache memory unit for a digital signal processor,which is controlled by the control method according to one of claims 15 to 24.
类似技术:
公开号 | 公开日 | 专利标题
US20200257573A1|2020-08-13|Coordinated garbage collection in distributed systems
EP0333123B1|1994-06-15|Modular strukturiertes ISDN-Kommunikationssystem
DE69922065T2|2005-11-24|Name administration of a highly configurable multi-node EDP system
DE3716229C2|1996-08-14|Microprocessor chip with a stack frame cache
US5623670A|1997-04-22|Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
DE102010054337B4|2016-09-15|Mechanisms to prevent inefficient core hopping and provide hardware-assisted low-level selection
DE10296989B4|2008-06-26|Multi-thread processor with the capability of an implicit multi-thread execution of a one-thread program
DE69724572T2|2004-04-08|Method and device for preloading various predefined address translation attributes
DE10297856B4|2014-07-17|A method and apparatus for suspending execution of a thread until a specified memory access occurs
DE112007000446B4|2013-10-10|Method and apparatus for using dynamic working set features to control the scaling of frequency and voltage of a CPU
US6487563B1|2002-11-26|Memory reclamation method
DE4309532C2|1996-10-31|Method for backing up a system image of a computer system on a permanent storage device and a computer system
EP3274825A1|2018-01-31|Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
EP0810517B1|2003-02-26|Hardware-Anordnung zur optimierten Vorausholung von Befehlen und Daten
EP1222739B1|2003-11-19|Rekonfigurierbares gate-array
DE60006217T3|2009-01-29|TECHNIQUES FOR GRANTING ACCESS TO A CONTEXT LOCK IN A DEVICE WITH SMALL SPACE NEED USING AN INPUT POINT OBJECT
DE10393920B4|2009-02-19|Methods and systems for controlling virtual machines
DE69636688T2|2007-10-18|Method and apparatus for automatically managing concurrent access to shared resources in a multi-tasking programming environment
DE10196007B4|2010-08-12|Platform and method for remote attesting a platform
DE4215063C2|1999-11-25|Device and method for changing pages in a non-volatile memory
Larson et al.1998|Memory allocation for long-running server applications
DE60130556T2|2008-06-12|VIRTUAL HEAP FOR A VIRTUAL MACHINE
DE60003235T2|2004-04-08|CACHE STORAGE FOR PROVIDING PARTIAL LABELS FROM NON-PREPARED WAYS TO DIRECT SEARCH FOR MISSING OUT FORECASTING
DE69834087T2|2006-11-23|Method and apparatus for preprocessing and packaging class files
DE69133257T2|2004-04-08|DEVICE AND METHOD FOR QUICK PACKAGE DELIVERY
同族专利:
公开号 | 公开日
KR100532417B1|2005-11-30|
KR20040067063A|2004-07-30|
FR2850179A1|2004-07-23|
FR2850179B1|2006-12-08|
US20040148464A1|2004-07-29|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2004-09-09| OP8| Request for examination as to paragraph 44 patent law|
2009-12-24| 8131| Rejection|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]